使用Apache POI密码保护.XLS Excel文件

我正在使用Apache POI 3.11,它应该支持密码保护的Excel文件(包括XLS和XLSXtypes)。 我很容易得到XLSXtypes的encryption使用POI正常工作,但我一直无法做到这一点与旧的XLStypes。 我已经尝试使用下面的代码,但它所做的是创build一个文件的副本,而不需要设置密码。 就我所能从例子和API中可以看出来的,这是应该如何完成的,但是我无法得到它的工作。

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(sourcePath)); Biff8EncryptionKey.setCurrentUserPassword("potato"); OutputStream os = new FileOutputStream(destinationPath); wb.write(os); os.flush(); os.close(); 

任何build议,将不胜感激。 作为最后的手段,我也许可以使用不同的库,但是我更喜欢使用POI,因为这是我们用于与Excel相关的所有其他function的东西。

根据Apache POIencryption支持的functionmatrix ,HSSF仅支持解密使用已知密码保护的.xls文件。 它不支持encryption它们。 (XSSF可以同时处理encryption和解密.xlsx文件)

因此,如果您确实想要支持使用Apache POI的HSSF来encryption.xls文件,则需要参与该项目 ,然后才能为这个缺失的function提交补丁 。