1)添加easyexlce的依赖
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.0-beta1</version>
</dependency>
2)添加excel模板文件
实现的效果:
3)导出
@GetMapping("/export/use/template")
public void downloadUseTemplate(HttpServletResponse response) throws Exception {// 下载excelString fileName = "使用模板导出.xlsx";response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf-8");response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));// 加载模板InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName);// 输出到responseExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(inputStream).excelType(ExcelTypeEnum.XLSX).build();// 得到sheetWriteSheet writeSheet = EasyExcel.writerSheet().build();// 单个字段填充Map<String, Object> map = new HashMap<>();map.put("weekAdd",100);map.put("monthAdd",200);map.put("total",300);excelWriter.fill(map, writeSheet);// 列表竖向填充List<DetailDTO> details = new ArrayList<>();details.add(new DetailDTO(new SimpleDateFormat("yyyy-MM-dd").parse("2023-12-10"), 100));details.add(new DetailDTO(new SimpleDateFormat("yyyy-MM-dd").parse("2023-12-11"), 80));details.add(new DetailDTO(new SimpleDateFormat("yyyy-MM-dd").parse("2023-12-12"), 200));excelWriter.fill(new FillWrapper("details", details), writeSheet);// 列表横向填充FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build();excelWriter.fill(new FillWrapper("week", details),fillConfig, writeSheet);excelWriter.finish();}
完整的源码下载https://github.com/xjs1919/enumdemo下面的easyexcel-upload-demo
done!