阅读受密码保护的工作表(版本 - excel 95,97-2003)Java
Reading password protected worksheet (version - excel 95,97-2003) Java
我有一个受密码保护的作品sheet 创建于 excel 95,97-2003
我有密码,我正在尝试以不同的方式读取此文件
方法一:
WorkbookFactory.create(inputStream, "password");
throws: org.apache.poi.EncryptedDocumentException: HSSF does not currently support CryptoAPI encryption
方法二:
protected InputStream WorkbookProtectionUnlocker(NPOIFSFileSystem fs, String password) throws AAAAException {
EncryptionInfo info;
try {
info = new EncryptionInfo(fs.getRoot());
} catch (IOException e) {
throw new AAAException(e.getCause());
}
Decryptor d = Decryptor.getInstance(info);
org.apache.poi.EncryptedDocumentException: HSSF 目前不支持 CryptoAPI 加密
也抛出同样的异常
方法三:
org.apache.poi.hssf.record.crypto.Biff8EncryptionKey.setCurrentUserPassword("password");
Workbook wb = new HSSFWorkbook(new FileInputStream(file);
同样的例外。
方法四:
了解 jxl.Workbook.getWorkbook
但在此对象中,只允许将密码设置为 sheet 而不是整个作品 sheet .
抛出此错误:jxl.read.biff.PasswordException
因为无法为作品设置密码sheet。
方法五
org.apache.poi.hssf.record.crypto.Biff8EncryptionKey.setCurrentUserPassword(fileInfo.getFileOptions().xlsWorkbookPasswordExpression);
WorkbookFactory.create(new FileInputStream(fileInfo.getInputFile()));
同样的异常:
org.apache.poi.EncryptedDocumentException: HSSF does not currently support CryptoAPI encryption
打开受密码保护的 HSSF 工作簿的正确方法是什么?
Apache POI 尚未完全支持 Office 文件格式的所有不同加密功能,请参阅 http://poi.apache.org/encryption.html 了解当前支持的内容。
然而,自上次发布 POI-3.15 以来,trunk 上进行了一些增强,因此可能值得尝试 https://builds.apache.org/view/POI/job/POI/lastSuccessfulBuild/artifact/ 最近的夜间构建,看看它是否有效。
否则,您需要在 https://bz.apache.org/bugzilla/ 报告错误,并提供可用于重现和验证的示例文件。
我有一个受密码保护的作品sheet 创建于 excel 95,97-2003
我有密码,我正在尝试以不同的方式读取此文件
方法一:
WorkbookFactory.create(inputStream, "password");
throws: org.apache.poi.EncryptedDocumentException: HSSF does not currently support CryptoAPI encryption
方法二:
protected InputStream WorkbookProtectionUnlocker(NPOIFSFileSystem fs, String password) throws AAAAException {
EncryptionInfo info;
try {
info = new EncryptionInfo(fs.getRoot());
} catch (IOException e) {
throw new AAAException(e.getCause());
}
Decryptor d = Decryptor.getInstance(info);
org.apache.poi.EncryptedDocumentException: HSSF 目前不支持 CryptoAPI 加密
也抛出同样的异常
方法三:
org.apache.poi.hssf.record.crypto.Biff8EncryptionKey.setCurrentUserPassword("password");
Workbook wb = new HSSFWorkbook(new FileInputStream(file);
同样的例外。
方法四:
了解 jxl.Workbook.getWorkbook
但在此对象中,只允许将密码设置为 sheet 而不是整个作品 sheet .
抛出此错误:jxl.read.biff.PasswordException
因为无法为作品设置密码sheet。
方法五
org.apache.poi.hssf.record.crypto.Biff8EncryptionKey.setCurrentUserPassword(fileInfo.getFileOptions().xlsWorkbookPasswordExpression);
WorkbookFactory.create(new FileInputStream(fileInfo.getInputFile()));
同样的异常:
org.apache.poi.EncryptedDocumentException: HSSF does not currently support CryptoAPI encryption
打开受密码保护的 HSSF 工作簿的正确方法是什么?
Apache POI 尚未完全支持 Office 文件格式的所有不同加密功能,请参阅 http://poi.apache.org/encryption.html 了解当前支持的内容。
然而,自上次发布 POI-3.15 以来,trunk 上进行了一些增强,因此可能值得尝试 https://builds.apache.org/view/POI/job/POI/lastSuccessfulBuild/artifact/ 最近的夜间构建,看看它是否有效。
否则,您需要在 https://bz.apache.org/bugzilla/ 报告错误,并提供可用于重现和验证的示例文件。