提示:为了回应开发同学,特写此文,希望能帮助到大家,谢谢大家支持和信任
文章目录- 前言
- 一、上菜
- 1.添加依赖
- 2.核心编码
- 3.导出字段属性介绍
前言
Easy Excel 真的很好用,今天就为大家介绍如何使用它做动态导出。
链接: Easy Excel官网入口.
一、上菜 1.添加依赖2.核心编码com.alibaba easyexcel2.2.5 poi org.apache.poi
@ApiOperation(httpMethod = "POST", value = "下载路线规划报表", notes = "下载路线规划报表", produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/download/route-report") public void downloadRouteReport(@RequestBody @Valid RouteReportDto reportDto, HttpServletResponse response) throws IOException { String sheetName = "路线规划报表"; try { response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 String fileName = URLEncoder.encode("路线规划报表", "UTF-8").replaceAll("\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); response.setHeader("filename", fileName + ".xlsx"); RouteReportDto dto = getFormatDate(reportDto); // 查询数据 List3.导出字段属性介绍list = routeReportService.getRouteReportInfoExcel(dto); List excelList = new ArrayList<>(); // 数据格式包装 statusExcel(excelList,list); // 这里需要设置不关闭流 EasyExcel.write(response.getOutputStream(), RouteReportExcel.class).autoCloseStream(Boolean.FALSE).sheet(sheetName) .doWrite(excelList0); } catch (Exception e) { // 重置response log.error("导出异常!!!",e); response.reset(); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); Map map = new HashMap<>(); map.put("status", "failure"); map.put("message", "下载文件失败" + e.getMessage()); response.getWriter().println(JSON.toJSONString(map)); } }
// RouteReportExcel @ExcelProperty 在每个需要导出的字段上面加上导出时需要展示的名称即可。 直接整一个组合型,可以灵活使用,不用拘泥于一种格式 @Data @ApiModel(value = "报表数据") public class RouteReportExcel implements Serializable { @ExcelProperty({"时间", "自然月"}) @ApiModelProperty(value = "年月") private String planMonth; @ExcelProperty({"组织", "行销公司"}) @ApiModelProperty(value = "公司") private String company; @ExcelProperty({"组织", "营业部"}) @ApiModelProperty(value = "营业部") private String dept; @ExcelProperty({"组织", "营业所"}) @ApiModelProperty(value = "营业所") private String orgName; @ExcelProperty({"组织", "业代类型"}) @ApiModelProperty(value = "业代类型") private String salesTypeName; @ExcelProperty({"组织", "业代人员"}) @ApiModelProperty(value = "业代人员") private String empName; @ExcelProperty({"规划进度", "方案完成"}) @ApiModelProperty(value = "方案完成") private String planDownloadStatus; @ExcelProperty({"规划进度", "方案上传SFT"}) @ApiModelProperty(value = "方案上传SFT") private String planUploadStatus; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)