我们如何使用POI API读取受保护的密码excel文件(.xls)

emb*_*rus 5 poi-hssf apache-poi

我刚刚学习了POI并发现HSSF非常易于阅读和创建excel文件(.xls).但是,当我想用​​密码读取excel保护时,我发现了一些问题.我花了一个小时才在互联网上找到这个解决方案.

请你帮我解决这个问题.如果你能给我一个代码片段,我很高兴.

谢谢.

Ran*_*ess 6

请参阅http://poi.apache.org/encryption.html - 如果您使用的是最新的Apache POI副本(例如3.8),则可以解密加密的.xls文件(HSSF)和.xlsx文件(XSSF)(证明你有密码!)

目前你不能写出加密的excel文件,只有未加密的文件


Gag*_*arr 5

在您写下问题时,使用 Apache POI 并不容易。从那时起,支持已经取得了长足的进步

如今,如果您想打开受密码保护的 Excel 文件,无论是.xls.xlsx,您知道密码,您所需要做的就是使用WorkbookFactory.create(File,Password),例如

File input = new File("password-protected.xlsx");
String password = "nice and secure";
Workbook wb = WorkbookFactory.create(input, password);
Run Code Online (Sandbox Code Playgroud)

这将识别文件的类型,使用给定的密码对其进行解密,然后为您打开它。然后您就可以正常阅读内容了


Rav*_*lau 0

POI 将无法读取加密的工作簿- 这意味着如果您保护了整个工作簿(而不仅仅是一张工作表),那么它将无法读取它。否则,它应该有效。