好久没有写博客了,今天抽空写一个
需求:要将批量导出的excel文件,提供加密的处理功能.
下面贴出完整的代码.
package com.test;
/**
* 将excel打包生成zip文件,并且打开excel
文件的时候,需要输入密码,才可以打开.
作者 aa00aa00
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
public class TestMailWithEncryptAttachment {
/**
* 生成zip文件
* @param srcfile
* @param zipFileName
* @param password
* @throws IOException
*/
public static void createZipFile(File srcfile, String zipFileName,
String password) throws IOException {
byte b[] = new byte[1024];
ZipOutputStream zout = null;
InputStream in = null;
try {
zout = new ZipOutputStream(new FileOutputStream(zipFileName));
in = new FileInputStream(srcfile);
String filename = srcfile.getName();// 取得文件名
ZipEntry e = new ZipEntry(filename); // 压缩后不带路径
zout.putNextEntry(e);
int len = 0;
while ((len = in.read(b)) != -1) {
zout.write(b, 0, len);
}
zout.closeEntry();
zout.flush();
zout.close();
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException io) {
io.printStackTrace();
} finally {
if (zout != null) {
try {
zout.flush();
zout.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//encryptZipFile(textFile, zipFileName, password);
TestMailWithEncryptAttachment.createProtectedZip(zipFileName, srcfile,
password);
}
/**
* 生成加密的xls文件
* @param zipFileName
* @param srcfile
* @param password
* @throws IOException
*/
public static void createProtectedZip(String zipFileName, File srcfile, String password) throws IOException
{
try
{
ZipFile zipFile = new ZipFile(zipFileName);
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(8);
parameters.setCompressionLevel(5);
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(0);
parameters.setPassword(password);
zipFile.addFile(srcfile, parameters);
}
catch (ZipException e)
{
e.printStackTrace();
}
}
/**
* 为压缩文件加密
*
* @param textFile 文本文件
* @param zipFileName 压缩文件名
* @param password 压缩密码
private static void encryptZipFile(File textFile, String zipFileName,
String password) {
AesZipFileEncrypter enc = null;
try {
enc = new AesZipFileEncrypter(zipFileName);
enc.addFileWithoutPath(textFile, password);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
enc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// 压缩, 加密文件
String zipFileName = "D:\\testdata\\userInfo.zip";
String compressPassword = "foo";
File srcfile = new File("D:\\testdata\\userInfo.xls");
createZipFile(srcfile, zipFileName, compressPassword);
}
}
附件中是:打包的程序代码和需要使用的jar包.
这里使用zip4j.jar做zip文件的处理,非常的方便.
贴出相关的网站.
http://outofmemory.cn/code-snippet/741/java-usage-ZipOutputStream-pack-zip-file
分享到:
相关推荐
"多个Excel导出压缩成zip文件"的场景通常是为了解决数据量过大导致的文件管理不便、传输效率低以及存储空间占用过多等问题。下面我们将深入探讨这个话题,主要涵盖以下几个方面: 1. **大数据量导出**: - 当数据...
本文主要介绍了java动态导出excel压缩成zip下载的方法,该方法可以将excel文件压缩成zip格式并下载,具有实用价值。 java动态导出excel压缩成zip下载的原理 java动态导出excel压缩成zip下载的方法主要通过使用java...
12. **文件压缩**:为了减少文件大小和加快传输速度,可以将多个Excel文件打包成一个ZIP文件供用户下载。 综上所述,导出Excel功能涉及的技术和细节众多,涵盖了数据处理、用户交互、性能优化等多个方面。在实际...
RAR和ZIP是常见的文件压缩格式,它们允许用户将多个文件或文件夹打包成一个单一的文件,便于存储、传输和备份。RAR格式由RARLAB公司开发,通常提供更好的压缩率,支持修复损坏的压缩文件。ZIP格式则更通用,大多数...
edb数据库文件转Excel文件1.5(1.5).zip edb数据库文件转Excel文件1.3(1.0).zip ETimeFly API模块(1.0).zip Excel功能模块(1.0).zip EXE→SWF转换模块(1.0).zip E库多条件查询模块(1.0).zip E库模糊查询模块...
5. **加密与解密**:ZIP格式支持密码保护,ZIPARCHIVE库提供了相应的加密和解密功能,以确保数据的安全性。 在实际开发中,ZIPARCHIVE库的使用通常涉及以下几个步骤: 1. **初始化**:创建一个ZIPARCHIVE对象,这...
ZIP是一种常用的文件压缩格式,可以将多个文件打包成一个压缩包,节省存储空间并方便传输。在本场景中,使用ZIP压缩可以将多个XML文件(对应多个sheet)整合到一个文件中,便于管理和分发。 8. **编程实现**: ...
这个文件采用ZIP格式,这是一种常见的文件压缩方法,用于将多个文件或文件夹打包成一个更小的文件,便于传输和存储。 描述中的信息同样简单明了,与标题一致,提示我们这个ZIP文件的内容是一个Excel模板,专门用于...
CPU占用率检测模块.ec cs.ec DES加密模块 1.0.ec DIY热键框模块.ec DLL注入模块.ec DOS命令模块.ec ...Excel功能模块.ec EXE→SWF转换模块.ec ExportEdb.ec E库多条件查询模块.ec E库模糊查询模块.ec
它支持创建、添加文件到ZIP档案、从ZIP文件中提取文件,以及对ZIP文件进行加密和解密。在Unity中,开发人员可以利用这个库来实现资源的打包和分发,减少网络传输的数据量,或者在运行时动态加载和解压资源。 最后,...
例如,`SheetJS`库提供了`XLSX`对象,可以读取和写入Excel文件,并且对浏览器兼容性做了优化。 3. **HTML表格转换**: 当描述中提到“暂时只支持table表格生成”,这意味着当前的解决方案可能专注于将...
如果你更倾向于在文件系统层面保护Excel文件,可以使用操作系统的加密功能,如Windows的EFS( Encrypting File System)或Linux的eCryptfs。这将加密整个文件,包括Excel内容。在Java中,你可以使用Java的`...
在实际应用中,如果你有一个需要批量生成并发送Excel报告的任务,NPOI可以帮助你生成这些报告,而Ionic.Zip则可以将它们打包成ZIP文件,便于传输和存储。这样的组合使得开发者能够在一个无Office环境的系统上实现...
标题中的“Excel模板合同审批表(1).zip”表明这是一个使用Excel制作的、用于合同审批工作的模板文件,并且已经打包成ZIP格式的压缩文件。ZIP是一种常见的文件压缩格式,它能够将多个文件或文件夹合并成一个单一的...
ZIP是一种常见的文件压缩格式,它允许用户将多个文件和文件夹打包成一个单一的可下载和存储的文件,减少了文件占用的磁盘空间。在Windows、Mac OS以及Linux等操作系统中,都内置了对ZIP文件的支持,用户可以方便地...
【标签】虽然没有提供标签,但我们可以通过标题来推测可能的标签,比如“作业”、“压缩文件”、“ZIP格式”、“学习材料”、“文件打包”。 【压缩包子文件的文件名称列表】仅有一个条目:“11.7作业”,这可能是...
这些服务通常提供文件预览功能,即使接收方没有解压工具,也能查看ZIP内的文档。 七、跨平台兼容性 ZIP格式是跨平台的,无论是在Windows、Mac OS还是Linux系统中,都有对应的工具可以处理ZIP文件。这使得ZIP成为...
EXCEL2000支持库(1.0-7).zip 目录树支持库(1.2-9).zip 高级表格支持库(1.3-8).zip 目录树支持库(1.3-5).zip 图像格式转换支持库(1.0-4).zip 精灵助手支持库(1.4-3).zip 进程通讯支持库(1.1-2).zip 取汉字带...
4. **安全存储**:使用SharpZipLib的加密功能,可以将敏感数据打包成加密的ZIP文件进行存储。 这两个库的结合使用,极大地扩展了VS2010在处理数据文件和压缩任务上的能力,使开发者能更高效地完成各种业务需求。在...