当前位置:  开发笔记 > 编程语言 > 正文

如何使用POI API访问Java中受密码保护的Excel工作簿

如何解决《如何使用POIAPI访问Java中受密码保护的Excel工作簿》经验,为你挑选了1个好方法。

我想读取和写入受密码保护的Excel文件.如何使用Apache POI API执行此操作.



1> Gagravarr..:

POI应该能够打开两个受保护的xls文件(使用org.apache.poi.hssf.record.crypt)和受保护的xlsx文件(使用org.apache.poi.poifs.crypt).你试过这些吗?

如果您正在使用HSSF(对于xls文件),则需要在打开文件之前设置密码.您通过以下呼叫执行此操作:

 org.apache.poi.hssf.record.crypto.Biff8EncryptionKey.setCurrentUserPassword(password);

之后,HSSF应该能够打开您的文件.

对于XSSF,您需要以下内容:

POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("protect.xlsx"));
EncryptionInfo info = new EncryptionInfo(fs);
Decryptor d = new Decryptor(info);
d.verifyPassword(Decryptor.DEFAULT_PASSWORD);
XSSFWorkbook wb = new XSSFWorkbook(d.getDataStream(fs));

.

或者,在较新版本的Apache POI中,WorkbookFactory支持在打开时提供密码,因此您可以执行以下操作:

Workbook wb = WorkbookFactory.create(new File("protected.xls"), "password"));

这对HSSF和XSSF都有效,根据格式选择正确的,并以适当的格式传递给定的密码.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有