admin管理员组文章数量:1589660
Java生成Excel加密文件
1.导入poi包
<!-- POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
2、建类XlsxCreate
package xlsxCreateAndJiami;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.opc.PackageAccess;
import org.apache.poi.poifs.crypt.EncryptionInfo;
import org.apache.poi.poifs.crypt.EncryptionMode;
import org.apache.poi.poifs.crypt.Encryptor;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class XlsxCreate {
public static void main(String[] args) {
XlsxCre();
}
@SuppressWarnings("resource")
public static void XlsxCre() {
String filename="D:\\TestCreate.xlsx";
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("sheet"+1);
Row headRow=sheet.createRow(0);
headRow.createCell(0).setCellValue("one");
headRow.createCell(1).setCellValue("two");
headRow.createCell(2).setCellValue("three");
headRow.createCell(3).setCellValue("four");
Row firstRow=sheet.createRow(1);
firstRow.createCell(0).setCellValue("1");
firstRow.createCell(1).setCellValue("2");
firstRow.createCell(2).setCellValue("3");
firstRow.createCell(3).setCellValue("4");
FileOutputStream fos=null;
try {
//保存此XSSFWorkbook对象为xlsx文件
workbook.write(new FileOutputStream(filename));
POIFSFileSystem fs = new POIFSFileSystem();
EncryptionInfo info = new EncryptionInfo(EncryptionMode.standard);
Encryptor enc = info.getEncryptor();
//设置密码
enc.confirmPassword("zmf");
//加密文件
OPCPackage opc = OPCPackage.open(new File(filename), PackageAccess.READ_WRITE);
OutputStream os = enc.getDataStream(fs);
opc.save(os);
opc.close();
//把加密后的文件写回到流
fos = new FileOutputStream(filename);
fs.writeFilesystem(fos);
fos.flush();
}catch (Exception e) {
e.printStackTrace();
}finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("over");
}
}
就可以了
此处感谢茂飞up
原文:https://blog.csdn/weixin_43444783/article/details/92835447
版权声明:本文标题:Java poi生成Excel加密文件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728074500a1144312.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论