easyexcel实现多sheet导出(全网最简单)

导出多个sheet

controller层

 try {String fileName = "信息.xlsx";response.setContentType("application/vnd.ms-excel");String encodeFileName;try {encodeFileName = URLEncoder.encode(fileName, "utf-8");} catch (Exception e) {throw new WarnMessageException("文件名编码失败,失败原因:" + e.getMessage());}response.setHeader("Content-Disposition", "attachment;filename=" + encodeFileName);trackPointRestService.exportTrackInfo(request, response, fileName);} catch (Exception e) {log.error("导出列表出现问题,入参:{}", JsonHelper.toJson(request), e);return ResponseUtil.getFailBaseDataResponse("系统错误");}

service层

public BaseDataResponse<Boolean> exportTrackInfo(ExportTrackInfoRequest request, HttpServletResponse response, String fileName) {// 2、 查询埋点表查询数据库的信息// 4. 导出条件下供应商线索表try {//把数据转换成easy Excel支持的格式TrackPointInfoExcelDTO trackPointInfoExcelDTO = convert2TrackPointInfoExcelDTO(trackPointInfoDTO);List<TrackDataTransInfoExcelDTO> transInfoExcelDTOList = convert2TrackDataTransInfoExcelDTO(trackDataTransInfoDTOList);List<TrackTriggerRuleExcelDTO> triggerRuleExcelDTOList = convert2TrackTriggerRuleDTO(trackTriggerRuleDTOList);ExcelExportAction.doActionTrackInfoExport(trackPointInfoExcelDTO, transInfoExcelDTOList, triggerRuleExcelDTOList, response.getOutputStream());} catch (Exception e) {throw new WarnMessageException("导出表格失败,错误信息:" + e.getMessage());}return ResponseUtil.getSuccessBaseDataResponse(Boolean.TRUE);}

具体的每一个excelDTO

public class TrackPointInfoExcelDTO implements Serializable {/*** 备注*/@ExcelProperty("备注") //excel上显示的表头@ColumnWidth(15)private String remark;
}

Excel的操作类里面的方法

public static void doActionTrackInfoExport(TrackPointInfoExcelDTO trackPointInfoExcelDTO,List<TrackDataTransInfoExcelDTO> transInfoExcelDTOList,List<TrackTriggerRuleExcelDTO> triggerRuleExcelDTOList,OutputStream outputStream) {ExcelWriter excelWriter = EasyExcel.write(outputStream).build();//埋点基础信息 sheetWriteSheet writeSheet = EasyExcel.writerSheet(0, "sheet1名称").head(TrackPointInfoExcelDTO.class).build();excelWriter.write(Collections.singletonList(trackPointInfoExcelDTO), writeSheet);//埋点数据转换信息 sheetwriteSheet = EasyExcel.writerSheet(1, "sheet2名称").head(TrackDataTransInfoExcelDTO.class).build();excelWriter.write(transInfoExcelDTOList, writeSheet);//埋点触发规则信息 sheetwriteSheet = EasyExcel.writerSheet(2, "sheet3名称").head(TrackTriggerRuleExcelDTO.class).build();excelWriter.write(triggerRuleExcelDTOList, writeSheet);excelWriter.finish();}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部