读密码保护的工作表(版本 – 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的示例文件。