用Hutool中的工具类实现导出多个sheet
一.实现代码如下:
ExcelWriter writer = null; //设置一个文件名称 String thisTime = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date()); String fileName = new String(("data" + thisTime).getBytes("utf-8"), "ISO8859-1"); List<Map> maps = trainingMapper.allTrain(siteId); for (Map map : maps) { Boolean visibleRange = Boolean.valueOf(String.valueOf(map.get("visibleRange"))); Long trainId = Long.valueOf(String.valueOf(map.get("id"))); String trainName = String.valueOf(map.get("名称")); if (Objects.isNull(writer)) { writer = ExcelUtil.getBigWriter(fileName, trainName); } else { //设置单元名称 writer.setSheet(trainName); } List<Map> learns = new ArrayList<>(); //公开班 if (visibleRange) { learns = commonMapper.getLatestOneGongLearns(trainId, null, null); } else { learns = commonMapper.getLatestOneZhuanLearns(trainId, null); } writer.getStyleSet().setAlign(HorizontalAlignment.LEFT, VerticalAlignment.CENTER); //将数据塞入 writer.write(learns, true); writer.autoSizeColumnAll(); } response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx"); ServletOutputStream out = response.getOutputStream(); writer.flush(out); // 关闭writer,释放内存 writer.close(); IoUtil.close(out);
二.EXCEL 实现 下载的工具类代码如下:
public class ResponseUtils { public static void downloadFile(HttpServletResponse response, Iterable<?> rows, String fileName) { try { String thisTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); fileName = new String((fileName + "-" + thisTime).getBytes("utf-8"), "ISO8859-1"); BigExcelWriter writer = ExcelUtil.getBigWriter(fileName); writer.getStyleSet().setAlign(HorizontalAlignment.LEFT, VerticalAlignment.CENTER); writer.write(rows, true); writer.autoSizeColumnAll(); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx"); ServletOutputStream out = response.getOutputStream(); writer.flush(out, true); writer.close(); IoUtil.close(out); } catch (Exception ee) { System.out.println(ee); System.out.println(ee.getMessage()); } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步