添加依賴
<!-- 導出文件工具 EasyPoi實現(xiàn)Excel導入 -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.0.1</version>
</dependency>
實現(xiàn)
//聲明一個工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//生成一個表格赔嚎,設置表格名稱
HSSFSheet sheet = workbook.createSheet("表格");
HSSFCellStyle setBorder = workbook.createCellStyle();
//添加通用的樣式
// setStyle(workbook,sheet,setBorder);
List<List<String>> excelData = new ArrayList<>();
List<String> headers = new ArrayList<>();//表頭
headers.add("學校");
headers.add("班級");
headers.add("姓名");
headers.add("性別");
headers.add("年齡");
for (String name: listTitle) {//表頭
headers.add(name);
}
excelData.add(headers);
// 數(shù)據(jù)集
for (String data: listData) {//數(shù)據(jù)
excelData.add(data);
}
//寫入List<List<String>>中的數(shù)據(jù)
int rowIndex = 0;
for (List<String> data : excelData) {
//創(chuàng)建一個row行浮还,然后自增1
HSSFRow row = sheet.createRow(rowIndex++);
//遍歷添加本行數(shù)據(jù)
for (int i = 0; i < data.size(); i++) {
//創(chuàng)建一個單元格
HSSFCell cell = row.createCell(i);
//創(chuàng)建一個內容對象
HSSFRichTextString text = new HSSFRichTextString(data.get(i));
//將內容對象的文字內容寫入到單元格中
cell.setCellValue(text);
cell.setCellStyle(setBorder); //將設置的樣式添加到excel
}
}
try {
//準備將Excel的輸出流通過response輸出到頁面下載
//八進制輸出流
response.setContentType("application/octet-stream");
//設置導出Excel的名稱
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(scaleAnonymityAssess.getPaperName() + ".xlsx", "UTF-8"));
//刷新緩沖
response.flushBuffer();
//workbook將Excel寫入到response的輸出流中癣亚,供頁面下載該Excel文件
workbook.write(response.getOutputStream());
//關閉workbook
workbook.close();
} catch (Exception ex) {
throw ex;
}