SpringBoot 使用POI進行Excel下載
阿新 • • 發佈:2018-12-29
使用poi處理Excel特別方便,此處將處理Excel的程式碼分享出來。
1.maven引用
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
2.service邏輯程式碼
/** * 獲取下載模版 */ public void salaryTemplate(HttpServletResponse response)throws Exception{ HSSFWorkbook workbook = new HSSFWorkbook(); exportExcel(workbook); response.setHeader("Content-type","application/vnd.ms-excel"); // 解決匯出檔名中文亂碼 response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Disposition","attachment;filename="+new String("工資模版".getBytes("UTF-8"),"ISO-8859-1")+".xls"); workbook.write(response.getOutputStream()); } //匯入為模版 private void exportExcel(HSSFWorkbook workbook) throws Exception { //建立建立sheet HSSFSheet sheet = workbook.createSheet("工資"); //建立單元格樣式 CellStyle cellStyle = workbook.createCellStyle(); cellStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index); //設定首行標題標題 HSSFRow headerRow = sheet.createRow(0); headerRow.createCell(0).setCellStyle(cellStyle); headerRow.createCell(0).setCellValue("工號"); headerRow.createCell(1).setCellStyle(cellStyle); headerRow.createCell(1).setCellValue("姓名"); headerRow.createCell(2).setCellStyle(cellStyle); headerRow.createCell(2).setCellValue("年齡"); //建立三行資料 HSSFRow row; for (int i = 0; i <4; i++) { row = sheet.createRow(i + 1); row.createCell(0).setCellStyle(cellStyle); row.createCell(0).setCellValue(i); row.createCell(1).setCellStyle(cellStyle); row.createCell(1).setCellValue("張三"); row.createCell(2).setCellStyle(cellStyle); row.createCell(2).setCellValue(19); } }
3.controller
@GetMapping("/salary/template")
public void salaryTemplate(HttpServletResponse response)throws Exception{
salaryService.salaryTemplate(response);
}
請求這個介面,下載下來就是Excel檔案。寫的比較簡單,不過看程式碼基本就能看懂。