读密码保护的工作表(版本 – excel 95,97-2003)Java

我有一个密码保护工作表创build与Excel 95,97-2003

我有密码,我正尝试以不同的方式阅读这个文件

方法1:

WorkbookFactory.create(inputStream, "password"); throws: org.apache.poi.EncryptedDocumentException: HSSF does not currently support CryptoAPI encryption 

方法2:

  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目前不支持CryptoAPIencryption

也抛出同样的例外

方法3:

 org.apache.poi.hssf.record.crypto.Biff8EncryptionKey.setCurrentUserPassword("password"); Workbook wb = new HSSFWorkbook(new FileInputStream(file); 

同样的例外。

方法4

请阅读jxl.Workbook.getWorkbook但在此对象中,只允许将密码设置为表单而不是整个工作表。

抛出这个错误: jxl.read.biff.PasswordException

因为不可能将密码设置为工作表。

方法5

 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文件格式的所有不同encryptionfunction,请参阅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/上报告一个可用于复制和validation的示例文件。