cn.afterturn easypoi-spring-boot-starter 4.3.0 org.apache.poi poi 4.1.2 compile
ListwbsTreeVoInfos = projectService.getWbsTreeVoInfos(projectId); List 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); } } }



