<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.1-final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.5-final</version>
</dependency>
@GetMapping("/excel")
public ResponseEntity<byte[]> excel() throws IOException {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFCellStyle style = wb.createCellStyle();
style.setFillForegroundColor((short) 13);
style.setFillForegroundColor((short) 13);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont font = wb.createFont();
font.setFontName("黑體");
font.setFontHeightInPoints((short) 16);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(font);
for (int rownum = 0; rownum < 50; rownum++) {
HSSFRow hssfRow = sheet.createRow(rownum);
for (int cellnum = 0; cellnum < 30; cellnum++) {
HSSFCell cell = hssfRow.createCell((short) cellnum);
cell.setCellValue(rownum + "" + cellnum);
}
}
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
wb.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
} finally {
outputStream.close();
}
HttpHeaders httpHeaders = new HttpHeaders();
String fileName = new String("測試.xls".getBytes("UTF-8"), "iso-8859-1");
httpHeaders.setContentDispositionFormData("attachment", fileName);
httpHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
ResponseEntity<byte[]> filebyte = new ResponseEntity<byte[]>(outputStream.toByteArray(), httpHeaders, HttpStatus.CREATED);
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
outputStream.close();
}
return filebyte;
}