首页 > 其他分享 >使用EasyExcel写入Excel后,将多个Excel打包为ZIP压缩包下载

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

时间:2024-10-12 11:10:55浏览次数:9  
标签:ZIP Excel EasyExcel 写入 sheetMap new response

概述

使用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工作簿

标签:ZIP,Excel,EasyExcel,写入,sheetMap,new,response
From: https://www.cnblogs.com/lucky-jun/p/18460143

相关文章

  • Springboot使用EasyExcel 的填充模板导出,导出为多Sheet工作簿
    概述Springboot使用EasyExcel的填充模板导出,导出为多Sheet工作簿详细代码Excel数据填充/***使用EasyExcel写入Excel*@paramexcelModelFilePath 模板文件地址*@paramsheetNameAndDataMap Sheet名称与Sheet数据Map集合,key为Sheet名称,value为Sheet数据集合*@ret......
  • 淘宝程序员没活硬整?在 Excel 和 VSCode 中购物!
    大家好,我是程序员鱼皮,最近某宝网站的改进,属实是有点“新”了。你敢相信这是一个购物网站么?你可以在Excel表格中挑选商品进行购物,还原度极高,这两个图表更是点睛之笔。哪个天才想出来的,把特么广告都整成了Excel图表。PS修图软件中也可以购物,不仔细看的话还真以为我在设计......
  • 如何一键将数据库表导出为Excel,并且列名为中文注释
    工作中,我们经常需要将数据库表的数据导出导excel,通常我们会使用诸如navicate等数据库编辑器的导出功能来导出,但是通常导出步骤繁多,而且导出的都是英文的表名和列名,不便于理解。下面我们来介绍的卢导表,如何实现一键导出。如图,需导出数据库中如下的两张表新建一个数据库连......
  • 利用VBA+SQL查询Excel工作表数据(基本查询)
    引言在VBA中,我们可以使用SQL语句对Excel工作表数据进行增删改查的操作。其中,查询工作表数据是最经常使用的操作。SQL查询语句可大致分为以下几类:(1)基本查询;(2)条件查询;(3)模糊查询;(4)分组查询;(5)多表查询。本文搭建了VBA+SQL查询的模板,并汇总了SQL基本查询的实际应用,为后续学习条件查......
  • Pandas测试Excel文件:fillna()与strip()相互作用的影响
    遇见的问题np.nan被strip之后仍为nan,但是此nan无法被.fillna()处理,处理后仍然为nanget_address_local_mail['CountryID_mail']=get_address_local_mail['CountryID_mail'].apply(lambdax:np.nanifx=="00000000-0000-0000-0000-000000000000"orx==&......
  • excel转pdf
    importcom.aspose.cells.Workbook;importcom.aspose.cells.SaveFormat;staticintcount=0;publicstaticvoidmain(String[]args){StringrootDir="F:\\333\\000";convertAllExcelFilesToPdf(rootDir);}privatestaticvoidconvertAllExce......
  • java解压rar,解压zip
    解压zippackagecom.xcg.webapp.common;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.nio.charset.Charset;importjava.util.zip.ZipFile;publicclassZipUtil{/***解压zi......
  • py脚本一:业务中excel报表处理
    excel报表处理根据业务需求,每月都要对报表处理一次,手动太麻烦,还容易出错,用py脚本,实现对应处理,能更快;个人需求可能并不符合所有要求涉及python模块pandas、numpy、re代码:importpandasaspdimportnumpyasnpimportreimportosdeflist_columns(df):print("......
  • 获取在excel中各种格式的日期单元格的年月部分 (VBA代码)
    公共部分  -->开始按钮PrivateSubCommandButton1_Click()DimaryALLData,colNamesDimcurRowNo,curColNo,iRowCount,iColCountConstcnst_fldRowNo=1Constcnst_BeginDataRowNo=2'----------IfMsgBox("开始执行......
  • java Gzip将json压缩成byte数组
    `importorg.apache.commons.lang3.StringUtils;importjava.io.*;importjava.nio.charset.StandardCharsets;importjava.util.Arrays;importjava.util.zip.GZIPInputStream;importjava.util.zip.GZIPOutputStream;publicclassTestController{publicsta......