<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
<scope>compile</scope>
</dependency>
List<WbsTreeVo> wbsTreeVoInfos = projectService.getWbsTreeVoInfos(projectId);
List<WbsTreeExcelModel> excelModels = JsonUtil.getJsonToList(wbsTreeVoInfos, WbsTreeExcelModel.class);
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, WbsTreeExcelModel.class, excelModels);
ExcelExportUtils.downLoadExcel(projectId+".xlsx",workbook);
public static void downLoadExcel(String fileName, Workbook workbook) {
OutputStream out = null;
BufferedOutputStream buf = null;
try {
HttpServletResponse response= ServletUtils.getResponse();
response.reset();
out = response.getOutputStream();
buf = new BufferedOutputStream(out);
String excelName = new String(fileName.getBytes("utf-8"), "iso-8859-1");
response.setHeader("content-Type", "application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + excelName);
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
workbook.write(buf);
buf.flush();
out.close();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
response.setHeader("Content-Length", String.valueOf(baos.size()));
out.write( baos.toByteArray() );
} catch (IOException e) {
log.error("文件导出异常,文件名:{},异常信息:", fileName, e);
ExceptionCast.cast(-1,"导出失败:"+e.getMessage());
} finally {
try {
if (null != buf) {
buf.close();
buf = null;
}
if (null != out) {
out.close();
out = null;
}
System.gc();
} catch (Exception e) {
log.error("文件导出,关闭流异常:", e);
}
}
}