使用EasyExcel写入Excel后,将多个Excel打包为ZIP压缩包下载

概述

使用EasyExcel写入Excel后,将多个Excel打包为ZIP压缩包下载

代码

@GetMapping("/downloadToZip")
public void downloadToZip(HttpServletResponse response){
    // 设置响应头
    response.setContentType("application/zip");
    response.setCharacterEncoding(StandardCharsets.UTF_8.toString());
    String fileName = URLEncoder.encode("测试压缩包", StandardCharsets.UTF_8.toString());
    response.setHeader("Content-Disposition", "attachment; filename="+fileName+".zip");
    
    // 多个Excel
    List<String> excelNameList = Arrays.asList("测试1", "测试2");
    
    // 按照表格,循环处理导出数据,可优化为多线程处理
    try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
        for (int i = 0; i < excelNameList.size(); i++) {
            String excelName = excelNameList.get(i);
            ZipEntry entry = new ZipEntry(excelName + ".xlsx");
            zos.putNextEntry(entry);
            
            // 模板与数据
            String excelModelFilePath = "/xxx/xxx/xxx/模板.xlsx";
            Map<String, List> sheetMap = new HashMap<>();
            sheetMap.put("Sheet1", new ArrayList<>());
            sheetMap.put("Sheet2", new ArrayList<>());
            
            // 写入Excel数据并获取写入后的Excel的byte[]
            byte[] exportExcelByte = service.writeExcelData(excelModelFilePath, sheetMap);
            
            zos.write(exportExcelByte);
        }
    }
}

writeExcelData()方法地址

Springboot使用EasyExcel 的填充模板导出,导出为多Sheet工作簿

作者:假装空白
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted @   假装空白  阅读(235)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
历史上的今天:
2021-10-12 vue——赋值后修改,原对象信息也会发生变化
点击右上角即可分享
微信分享提示