添加依赖
<!-- 导出文件工具 EasyPoi实现Excel导入 -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.0.1</version>
</dependency>
实现
//声明一个工作簿
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);
// 数据集
for (String data: listData) {//数据
excelData.add(data);
}
//写入List<List<String>>中的数据
int rowIndex = 0;
for (List<String> data : excelData) {
//创建一个row行,然后自增1
HSSFRow row = sheet.createRow(rowIndex++);
//遍历添加本行数据
for (int i = 0; i < data.size(); i++) {
//创建一个单元格
HSSFCell cell = row.createCell(i);
//创建一个内容对象
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;
}