java导出多个excel并打成zip包

JAVA导出Excel、TXT、批量导出ZIP JAVA导出Excel、TXT、批量导出ZIP目标知识点1.字节流与字符流2.简述页面导出文件的逻辑(直接导出TXT,一般读写流(stream)的时候,数据是先被读到了内存中,再把数据写到文件中)3. 一些类单个及批量导出EXcel文件批量导出TXT文件以上 目标 实现JAVA导出Excel、TXT、批量导出ZIP文件。 知识点 1.字节流与字符流 区别: 读写单位:顾名思义,字节流以字节(byt... 阅读详情

这里主要是要针对数据量过大,通过生成多个excel文件并打成一个zip压缩包提供下载.

 

压缩excel的类  ZipUtil:

 

Java代码   收藏代码
  1. import java.io.*;  
  2. import java.util.*;  
  3. import java.util.zip.ZipOutputStream;  
  4. import java.util.zip.ZipEntry;  
  5. import java.util.zip.ZipFile;  
  6. import org.apache.commons.logging.Log;  
  7. import org.apache.commons.logging.LogFactory;  
  8.   
  9.   
  10. public class ZipUtil {  
  11.       
  12.     private static final Log log = LogFactory.getLog(ZipUtil.class);  
  13.   
  14.   
  15.     /** 
  16.      * 压缩文件 
  17.      *  
  18.      * @param srcfile File[] 需要压缩的文件列表 
  19.      * @param zipfile File 压缩后的文件 
  20.      */  
  21.     public static void zipFiles(List<File> srcfile, File zipfile) {  
  22.         byte[] buf = new byte[1024];  
  23.         try {  
  24.             // Create the ZIP file  
  25.             ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));  
  26.             // Compress the files  
  27.             for (int i = 0; i < srcfile.size(); i++) {  
  28.                 File file = srcfile.get(i);  
  29.                 FileInputStream in = new FileInputStream(file);  
  30.                 // Add ZIP entry to output stream.  
  31.                 out.putNextEntry(new ZipEntry(file.getName()));  
  32.                 // Transfer bytes from the file to the ZIP file  
  33.                 int len;  
  34.                 while ((len = in.read(buf)) > 0) {  
  35.                     out.write(buf, 0, len);  
  36.                 }  
  37.                 // Complete the entry  
  38.                 out.closeEntry();  
  39.                 in.close();  
  40.             }  
  41.             // Complete the ZIP file  
  42.             out.close();  
  43.         } catch (IOException e) {  
  44.            log.error("ZipUtil zipFiles exception:"+e);  
  45.         }  
  46.     }  
  47.   
  48.     /** 
  49.      * 解压缩 
  50.      *  
  51.      * @param zipfile File 需要解压缩的文件 
  52.      * @param descDir String 解压后的目标目录 
  53.      */  
  54.     public static void unZipFiles(File zipfile, String descDir) {  
  55.         try {  
  56.             // Open the ZIP file  
  57.             ZipFile zf = new ZipFile(zipfile);  
  58.             for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {  
  59.                 // Get the entry name  
  60.                 ZipEntry entry = ((ZipEntry) entries.nextElement());  
  61.                 String zipEntryName = entry.getName();  
  62.                 InputStream in = zf.getInputStream(entry);  
  63.                 // System.out.println(zipEntryName);  
  64.                 OutputStream out = new FileOutputStream(descDir + zipEntryName);  
  65.                 byte[] buf1 = new byte[1024];  
  66.                 int len;  
  67.                 while ((len = in.read(buf1)) > 0) {  
  68.                     out.write(buf1, 0, len);  
  69.                 }  
  70.                 // Close the file and stream  
  71.                 in.close();  
  72.                 out.close();  
  73.             }  
  74.         } catch (IOException e) {  
  75.             log.error("ZipUtil unZipFiles exception:"+e);  
  76.         }  
  77.     }  
  78.   
  79.     /** 
  80.      * Main 
  81.      *  
  82.      * @param args 
  83.      */  
  84.     public static void main(String[] args) {  
  85.         List<File> srcfile=new ArrayList<File>();  
  86.         srcfile.add(new File("e:\\1.xls"));  
  87.         srcfile.add(new File("e:\\2.xls"));  
  88.         srcfile.add(new File("e:\\3.xls"));  
  89.         srcfile.add(new File("e:\\4.xls"));  
  90.         srcfile.add(new File("e:\\5.xls"));  
  91.   
  92.         File zipfile = new File("e:\\edm.zip");  
  93.         ZipUtil.zipFiles(srcfile, zipfile);  
  94.     }  
  95. }  

 

 

生成多个excel 类:

 

Java代码   收藏代码
  1. /** 
  2.     * forward:导出Excel 
  3.     * @throws Exception 
  4.     */  
  5.    private ModelAndView forwardExport2Excel(HttpServletRequest request, HttpServletResponse response)  
  6.    throws Exception{  
  7.        try {  
  8.           
  9.             Integer page=0;//页数  
  10.             Integer pagesize=Integer.valueOf(PropertiesUtil.getPropertyValue("PAGESIZE"));//每页显示数  
  11.             Integer total=0;//总数  
  12.             int pageindex=1;//当前页数  
  13.             Integer rowfrom = 1;  
  14.             Integer rowto = 10;  
  15.             total =service.getTotal();  
  16.             if(total<pagesize){  
  17.                 page=1;  
  18.                 System.out.println("from:"+rowfrom+"---"+total);  
  19.                 List<Object> list = new ArrayList<Object>();  
  20.                 list = service.getAllList(rowfrom,total);  
  21.                 JXLUtil.writeEmailInfo2Excel(response, "邮箱信息总览", "titles", list,pageindex);  
  22.             }else{                
  23.                 Integer mode=total%pagesize;  
  24.                 if(mode!=0){  
  25.                     page=total/pagesize+1;  
  26.                 }else{  
  27.                     page=total/pagesize;  
  28.                 }  
  29.                 if(total!=0 && page!=0){  
  30.                     while(pageindex<=page ){  
  31.                         if(total<0){  
  32.                             break;  
  33.                         }  
  34.                         if( total>pageindex*pagesize ){  
  35.                             System.out.println("from:"+(rowfrom)+"----"+pageindex*pagesize);  
  36.                             List<Object> list = new ArrayList<Object>();  
  37.                             list = service.getAllList(rowfrom,pagesize);  
  38.                             JXLUtil.writeEmailInfo2Excel(response, "邮箱信息总览", "titles", list,pageindex);  
  39.                             rowfrom=pageindex*pagesize;  
  40.                             pageindex++;     
  41.                         }else{  
  42.                             System.out.println("from:"+rowfrom+"--"+total);  
  43.                             List<Object> list = new ArrayList<Object>();  
  44.                             list = service.getAllList(rowfrom,total);  
  45.                             JXLUtil.writeEmailInfo2Excel(response, "邮箱信息总览", "titles", list,pageindex);  
  46.                             break;  
  47.                         }  
  48.                     }  
  49.                 }  
  50.         }     
  51.         List<File> srcfile=new ArrayList<File>();  
  52.         for(int p=1;p<=page;p++){  
  53.             srcfile.add(new File(PropertiesUtil.getPropertyValue("URL")+"zipname"+p+".xls"));  
  54.         }  
  55.         File zipfile = new File(PropertiesUtil.getPropertyValue("OUTPATH")+"zipname.zip");  
  56.            ZipUtil.zipFiles(srcfile, zipfile);  
  57.            String path = request.getContextPath();  
  58.            String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";      
  59.         writeObject("成功导出excel  地址:<html><a href="+basePath+"zipname.zip>点击下载</a></html>", response);     
  60.        
  61.        } catch (Exception e) {  
  62.            log.error("error:"+e);  
  63.        }  
  64.        return ;  
  65.    }  

 jxl生成excel参考我之前的一篇即可

easyexcel多个excel文件压缩为zip导出 背景:产品设计一个批量导出的功能,需要将生成的多个excel打成压缩包导出。 解决方案:因为我们之前项目的单个Excel导出都是用的easyexcel所以我这边还是希望用这个工具去生成excel,然后zip流导出。 探索过程参考了:https://www.jianshu.com/p/a082eeba88a9 //导包 <dependency> <groupId>com.alibaba</groupId> ... 阅读详情

相关推荐

java实现Excel压缩成Zip导出

1 概述 在web项目中常见的一种场景就是将文件导出为Excel,但是当需要导出多个Excel时,使用者将频繁操作,这样就严重降低了项目的友好交互性以及易用性,那么怎么才能优雅的解决这个问题呢?笔者今天分享将Excel导出后并压缩成zip包响应到浏览器端,希望对大家有所帮助。 2 实现思路 使用AEAI DP创建样例工程export_demo,创建测试数据表employee,

数通畅联 7824

Java导出Excel并导出压缩

【代码】Java导出Excel并导出压缩。

xnian_的博客 576

使用 easyExcel 生成多个 excel 并打包成zip压缩包

前言:最近项目有个需求,需要生成多个 excel并打包成 zip下载;由于需要生成的 excel头字段过多,这里有96个时间段的表头,建一个实体字段太多了,还好 easyExcel支持 List生成表头。 1、导入 Maven坐标,这里用到了 hutool工具箱里面的压缩工具。 <dependency> <groupId>com.alibaba</groupId> <artifact...

For-的博客 7249

Java导出多个excel并打包压缩成.zip文件

1、先获取到数据,并将数据导出excel到指定位置 public void downPoliceZip(WorksitePoliceApiInfo worksitePoliceApiInfo) throws Exception { String zipName = "同步数据" + LocalDate.now() ; List<Map<String, Object>> workerMaps = new LinkedList<>();

weixin_40750633的博客 1万+

SpringBoot 导出多个Excel文件,压缩成.zip格式下载

极其简单的excel导入导出,单个文件导出; 多个文件导出,放到zip压缩包导出。

默默不代表沉默 5056

java导出30万数据量的excel(采用生成多个excel,最后打包zip)

30万的数据量,生成多个excel最后打包成zip下载,是工程,直接导入就行

SpringMVC下Excel文件的上传下载实现

原文转载:http://blog.youkuaiyun.com/qiubabin/article/details/50113675  在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据、下载统计数据等等场景。针对这个问题,我写了个基于SpringMVC的简单上传下载示例,其中Excel的处理使用Apache的POI组件。   主要依赖的包如下:

zz775854904的博客 2152

java中将多个excel打包成zip文件下载.rar

java中将多个excel打包成zip文件下载.rar

JAVA 导出excel(三):导出zip压缩包

JAVA 导出excel(三):导出zip压缩包

Javaの甘乃迪的博客 3997

BMW Trojan 样本分析

仅用于链接已经删却但是需要方便查阅的原文http://blog.youkuaiyun.com/zirconsdu/article/details/7997470 转载请注明出处http://blog.youkuaiyun.com/zirconsdu/article/details/8153813。 一些具体数据结构和具体路径隐去。   BMW木马样本分析 摘要 2011年底和某Hunter的谈话涉及到当时新检

zirconsdu的专栏 3912

视频教程-Ps教程之神奇的Photoshop自动化技术-Photoshop

Ps教程之神奇的Photoshop自动化技术 10年以上IT行业工作经验、三...

weixin_28812857的博客 1476

java技术--导出多个excel并打成zip包

1.主要是要针对数据量过大,通过生成多个excel文件并打成一个zip压缩包提供下载 2.代码如下: import java.io.; import java.util.; import java.util.zip.ZipOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.apa...

qq591009234的博客 2150

Widar3.0复现日志(DFSExtractionCode)

需要使用的matlab基本功能

XiaoQiXiaoWei_J的博客 2439

java 导出表格打包zip文件下载_java导出多个excel并打成zip包

importjava.io.*;importjava.util.*;importjava.util.zip.ZipOutputStream;importjava.util.zip.ZipEntry;importjava.util.zip.ZipFile;importorg.apache.commons.logging.Log;importorg.apache.commons.logg...

weixin_29190169的博客 362

Ubuntu环境下rknn-toolkit2的安装与兼容性解析

本文详细解析了在Ubuntu系统上安装瑞芯微rknn-toolkit2工具链的完整流程与关键注意事项。文章重点剖析了rknn-toolkit2与旧版rknn-toolkit的核心兼容性问题,强调两者在API、模型格式及运行时库上互不兼容,并推荐使用Conda虚拟环境进行隔离管理,为RK3566、RK3588等开发板的AI模型部署提供清晰的实践指南。

weixin_29041767的博客 377

极智嘉嵌入式面试题及参考答案

IIC(Inter-Integrated Circuit)即集成电路总线,是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它仅使用两根线,即串行数据线 SDA 和串行时钟线 SCL,就能实现多个设备之间的通信,具有简单、高效、占用资源少等优点,广泛应用于各种嵌入式系统中。

大模型大数据攻城狮的专栏 922

JAVA实现生成多张excel并压缩导出,同时支持压缩包上传解压并读取

本文使用的是java.util.zip包下的ZipOutputStream与ZipInputStream流来实现压缩与解压缩。该依赖是用来操作excel。

Akumaz_的博客 1397

手把手教程 | 使用 apktool 修改已发布 APK 的版本号与版本名称

摘要:本文介绍如何使用apktool工具直接修改APK版本信息,适用于版本回滚、多版本测试等场景。详细步骤包括反编译APK、修改版本号、重打包、对齐优化和重新签名,并分享了反编译相关实用知识。该方法无需源代码参与,但需注意修改后的APK必须重新签名才能安装。最后强调应在合法范围内使用反编译技术。

学无止境 829

java导出多个excel压缩zip下载

package com.dianping.emidas.activity.biz.utils; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.Fil

张虹旺的博客 8579

fatal: unable to access ‘https://github.com/Stability-AI/stablediffusion.git/‘解决方案

本文主要介绍在安装 stable-diffusion-webui 时出现的 fatal: unable to access 'https://github.com/Stability-AI/stablediffusion.git/': Failed to connect to github.com port 443 after 21071 ms: Couldn't connect to server 问题的解决方案,希望能对你有所帮助。

水滴的博客 5688

[deprecated]第四章:TTM分析: 4.2.1 存储分配ttm_bo_validate功能实现分析

ttm_bo_validate是TTM框架中负责验证和调整BufferObject物理内存分配的核心函数,主要用于显存管理。该函数通过placement参数判断BO是否需要迁移或重新分配资源,完成内存分配、迁移及缓存策略调整等操作。实现流程包括资源释放、兼容性检查、迁移保护、新资源分配、迁移实现等步骤,支持多跳迁移和临时缓冲区。典型应用于显存溢出迁移、缓存策略调整、驱动初始化等场景,确保BO始终处于预期状态。

图形/计算GPU的驱动与虚拟化技术分享园地 849

java技术:easyexcel同时导出多个excel到web(zip压缩文件)

对于为什么这里是0,因为标题分多级标题,headNameList获取的是该单元格所在列的所有标题放在一个字符串数组中,因此一级标题的索引是0,当然如果是改其他标题,你只需要更换索引进行映射即可。@ExcelProperty(value={"单一来源正在进行中审价项目统计","承制单位联系人及电话"})@ExcelProperty(value={"单一来源正在进行中审价项目统计","单一来源承制单位"})@ExcelProperty(value={"${titleDate}","需求单位联系人/电话"})

LanJieZhiFu的博客 4026

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java导出多个excel并且打包成zip压缩文件

最近的项目有一个导出汇总数据的要求,考虑到用户软件的差异,所以要分别导出xls以及xlsx并且打包提供下载,所以有了这个博客,代码如下。 实现思路: 获取需要导出的数据; 生成对应的xls、xlsx文件流; 生成对应的zip文件,提供下载。 代码主要使用到了POI以及Hutool解压模块。 /** * 利用传入的数据,生成对应的xls文件 * * @param...

u013367319的专栏 6632

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

JAVA生成Zip文件并导出

JAVA生成Zip文件并导出

qq_38254635的博客 5893

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: Java根据模板创建excel文件
下一篇: Java isfile()与exists()的区别
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值