【问题标题】:Password Protect XSSFWorkBook Apache POI密码保护 XSSFWorkBook Apache POI
【发布时间】:2020-03-23 05:57:58
【问题描述】:

我需要密码保护 XSSFWorkBook。对于 HSSF,我可以轻松完成,但相同的实现不适用于 XSSFWorkBook。

我同时使用 Apache POI 3.6 和 3.9。我的意思是我尝试同时使用 3.6 和 3.9。

我想我需要使用 POIFSFileSystem 但任何人都可以指导我。

【问题讨论】:

    标签: java excel encryption apache-poi


    【解决方案1】:

    最新版本的 poi 支持密码保护。

    请看http://poi.apache.org/encryption.html

    已尝试建议的方法,并且效果很好。

    【讨论】:

      【解决方案2】:

      基于Apache POI - Encryption support doc。

      这取决于文件系统,即MS-Office 2003MS-Office 2007等。

      以下程序在MS-Office 2007 中工作。请检查文档

      POIFSFileSystem filesystem = --> get your filesystem
      EncryptionInfo encInfo = new EncryptionInfo(filesystem); 
      Decryptor decryptor = new Decryptor(encInfo); 
      decryptor.verifyPassword("your-password"); 
      XSSFWorkbook wb = new XSSFWorkbook(decryptor.getDataStream(filesystem))
      

      【讨论】:

      • 这是用来读取加密表的。我想用密码加密表。
      • 另外,上面的代码说不能实例化解密器..因此第三行根本不起作用。
      • 你可能有旧版本的 Apache POI,尝试升级
      【解决方案3】:

      使用 Apache POI 我们可以读取受密码保护的文件,但它们无法创建受密码保护的文件。

      所以试试其他一些商业图书馆,比如Aspose

      【讨论】:

        猜你喜欢
        • 2020-09-15
        • 1970-01-01
        • 1970-01-01
        • 2017-10-26
        • 2018-04-29
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        • 2017-02-01
        相关资源
        最近更新 更多