
提示:为了回应开发同学,特写此文,希望能帮助到大家,谢谢大家支持和信任
文章目录- 前言
- 一、上菜
- 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条)