`
kfcman
  • 浏览: 396982 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java导出多个excel并打成zip包

    博客分类:
  • java
 
阅读更多

 

import java.io.*;  

import java.text.SimpleDateFormat;

import java.util.*;  

import java.util.zip.ZipOutputStream;  

import java.util.zip.ZipEntry;  

import java.util.zip.ZipFile;  

import org.apache.commons.logging.Log;  

import org.apache.commons.logging.LogFactory;  

  

  

public class ZipUtil {  

      

    private static final Log log = LogFactory.getLog(ZipUtil.class);  

  

  

    public static void craeteZipPath(String path) throws IOException{  

        File zipFile = new File(path+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+".zip");  

        File[] files = new File(path).listFiles();  

        List<File> srcfile=new ArrayList<File>(); 

        if(files!=null && files.length > 0){  

        System.out.println("----------------"+files.length) ;

            for(File excelFile:files){  

            srcfile.add(excelFile) ;

            }  

            ZipUtil.zipFiles(srcfile, zipFile);  

        }  

    }  

    /** 

     * 压缩文件 

     *  

     * @param srcfile File[] 需要压缩的文件列表 

     * @param zipfile File 压缩后的文件 

     */  

    public static void zipFiles(List<File> srcfile, File zipfile) {  

        byte[] buf = new byte[1024];  

        try {  

            // Create the ZIP file  

            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));  

            // Compress the files  

            for (int i = 0; i < srcfile.size(); i++) {  

                File file = srcfile.get(i);  

                FileInputStream in = new FileInputStream(file);  

                // Add ZIP entry to output stream.  

                out.putNextEntry(new ZipEntry(file.getName()));  

                // Transfer bytes from the file to the ZIP file  

                int len;  

                while ((len = in.read(buf)) > 0) {  

                    out.write(buf, 0, len);  

                }  

                // Complete the entry  

                out.closeEntry();  

                in.close();  

            }  

            // Complete the ZIP file  

            out.close();  

        } catch (IOException e) {  

           log.error("ZipUtil zipFiles exception:"+e);  

        }  

    }  

  

    /** 

     * 解压缩 

     *  

     * @param zipfile File 需要解压缩的文件 

     * @param descDir String 解压后的目标目录 

     */  

    public static void unZipFiles(File zipfile, String descDir) {  

        try {  

            // Open the ZIP file  

            ZipFile zf = new ZipFile(zipfile);  

            for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {  

                // Get the entry name  

                ZipEntry entry = ((ZipEntry) entries.nextElement());  

                String zipEntryName = entry.getName();  

                InputStream in = zf.getInputStream(entry);  

                // System.out.println(zipEntryName);  

                OutputStream out = new FileOutputStream(descDir + zipEntryName);  

                byte[] buf1 = new byte[1024];  

                int len;  

                while ((len = in.read(buf1)) > 0) {  

                    out.write(buf1, 0, len);  

                }  

                // Close the file and stream  

                in.close();  

                out.close();  

            }  

        } catch (IOException e) {  

            log.error("ZipUtil unZipFiles exception:"+e);  

        }  

    }  

  

    /** 

     * Main 

     *  

     * @param args 

     */  

    public static void main(String[] args) {  

     try {

//        List<File> srcfile=new ArrayList<File>();  

////      srcfile.add(new File("D:\\data\\146_5186_201407.csv"));  

//        srcfile.add(new File("D:\\data\\146_5186_201408.csv"));  

//        srcfile.add(new File("D:\\data\\146_5186_201409.csv"));  

////      srcfile.add(new File("D:\\data\\146_5186_201410.csv"));  

////      srcfile.add(new File("D:\\data\\146_5186_201411.csv"));  

//        File zipfile = new File("D:\\data\\demo1.zip");  

//        ZipUtil.zipFiles(srcfile, zipfile);  

 ZipUtil.craeteZipPath("D:\\data\\server\\demo1") ;

} catch (IOException e) {

e.printStackTrace();

}

    }  

}  

 

分享到:
评论

相关推荐

    多个excel导出压缩成zip 文件 数据量大导出

    "多个Excel导出压缩成zip文件"的场景通常是为了解决数据量过大导致的文件管理不便、传输效率低以及存储空间占用过多等问题。下面我们将深入探讨这个话题,主要涵盖以下几个方面: 1. **大数据量导出**: - 当数据...

    生成excel并打包成zip文件

    综上所述,"生成excel并打包成zip文件"这个任务涉及到使用Java编程语言,特别是Apache POI库来生成Excel文件,再结合Java标准库的压缩功能将Excel和文本文件打包成ZIP。整个过程涉及到了文件的创建、写入、压缩和...

    java将数据导入多个excel并压缩,亲测可用

    在Java编程环境中,实现“将数据导入多个Excel并压缩”的功能是一项常见的任务,特别是在处理大量数据的业务场景中。这个需求通常涉及到数据处理、文件操作和压缩技术。下面,我们将详细探讨实现这一功能的关键知识...

    java后台批量下载文件并压缩成zip下载的方法

    Java后台批量下载文件并压缩成zip下载的方法 Java后台批量下载文件并压缩成zip下载的方法是指在Java后台中批量下载文件,并将其压缩成zip文件下载到本地桌面。该方法具有重要的参考价值,感兴趣的小伙伴们可以参考...

    批量打包下载pdf文件,多sheet页导出excel

    例如,如果你想要将多个sheet页的数据合并到单个数据帧中,你可以使用`pd.concat`函数,它接受一个包含所有sheet数据的字典,并返回一个合并后的DataFrame。如果你需要将处理过的数据导出为单个PDF文件,可能需要...

    使用POI实现表格导出jar包.zip

    将这两个目录一起打包成zip文件,即得到"使用POI实现表格导出jar包.zip"。 使用这个jar包时,只需通过Java的`java -jar`命令执行,即可在指定位置生成Excel文件。需要注意的是,由于jar文件包含所有依赖,所以它的...

    javacsv.zip 内含有jar包

    CSV文件的基本结构是每行由一个或多个字段组成,字段之间用逗号分隔。在JavaCSV库中,主要有两个核心类:`CSVReader`和`CSVWriter`。`CSVReader`用于读取CSV文件,而`CSVWriter`则用于将数据写入CSV文件。 1. CSV...

    java实现向word文档中插入柱状图,并更改颜色

    在实际应用中,这个过程可能会更复杂,因为可能需要处理多个图表、动态数据以及复杂的样式。同时,需要注意的是,直接操作XML可能会破坏文档的结构,因此在修改时要格外小心。Apache POI库提供了丰富的API,虽然可能...

    Spire.Pdf_4.11.1.zip

    综上所述,"Spire.Pdf_4.11.1.zip"是一个强大的Java PDF处理工具包,它涵盖了PDF处理的多个方面,是开发人员在Java环境下处理PDF文档的理想选择。无论是在企业级应用还是个人项目中,都能发挥出其高效、全面的功能。

    2019-5-9-xc-lib.zip

    综上所述,这个压缩包包含了一系列用于Java开发的库,涵盖了报表生成、XML处理、对象到XML映射、Office文档操作、PDF处理以及项目构建等多个方面。这些库对于进行企业级Java应用开发,特别是处理数据转换和报表生成...

    Highcharts-8.1.2.zip

    多个数据进行对比这是非常常见的需求,Highcharts 可以让你为每个类型的数据添加坐标轴,每个轴可以定义放置的位置,所有的设置都可以独立生效,包括旋转、样式设计和定位,当然也支持多个数据共用一个坐标轴。...

    基于SSM的学生在校表现评价管理系统源码.zip

    6. 数据导出:支持将评价结果导出为Excel或其他格式,便于打印或进一步分析。 该系统可能采用SpringBoot作为基础开发环境,SpringBoot简化了SSM的配置,提供了一种快速开发独立应用的方式,集成了各种常用组件,如...

    VB学生信息管理系统【VB】.zip

    同时,还可以导出为Excel等格式,便于数据共享和处理。 三、数据库设计 系统的核心是数据库,通常采用关系型数据库如Access或SQL Server来存储学生信息。数据库设计应遵循规范化原则,减少数据冗余,提高数据一致...

    网管教程 从入门到精通软件篇.txt

    如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart  创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。  diskpart [ /add |/delete] [device_...

Global site tag (gtag.js) - Google Analytics