1、pom依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>[4.1.12,)</version>
</dependency>
2、工具类
/**
* 导出excel
*/
public static void downloadExcel(List<Map<String, Object>> list, HttpServletResponse response) throws IOException {
String tempPath =System.getProperty("java.io.tmpdir") + IdUtil.fastSimpleUUID() + ".xlsx";
File file = new File(tempPath);
BigExcelWriter writer= ExcelUtil.getBigWriter(file);
StyleSet styleSet = writer.getStyleSet();
Workbook workbook = writer.getWorkbook();
DataFormat format = workbook.createDataFormat();
CellStyle style = styleSet.getCellStyle();
style.setDataFormat(format.getFormat("@"));
writer.setStyleSet(styleSet);
writer.write(list, true);
//response为HttpServletResponse对象
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition","attachment;filename=file.xlsx");
ServletOutputStream out=response.getOutputStream();
// 终止后删除临时文件
file.deleteOnExit();
writer.flush(out, true);
//此处记得关闭输出Servlet流
IoUtil.close(out);
}
3、实现类
@Override
public void download(List<AirForceActive> list, HttpServletResponse response) {
List<Map<String, Object>> list = new ArrayList<>();
for (AirForceActive airForceActive : downloadExcel) {
Map<String,Object> map = new LinkedHashMap<>();
map.put("身份证号", airForceActive.getAirportId());
map.put("姓名", airForceActive.getExeState());
map.put("年龄", airForceActive.getIssueTime());
map.put("性别", airForceActive.getExeState());
map.put("户籍", airForceActive.getExeState());
list.add(map);
}
try {
FilesUtil.downloadExcel(list, response);
} catch (IOException e) {
e.printStackTrace();
}
}