Java 如果excel文件2007受“POI 3.8”保护,如何通过POI 3.8对其进行解密;“限制编辑”;

Java 如果excel文件2007受“POI 3.8”保护,如何通过POI 3.8对其进行解密;“限制编辑”;,java,excel,apache-poi,Java,Excel,Apache Poi,在Excel2007中,我们可以通过在菜单上选择“保护工作簿”并选择“保护结构和窗口”来保护工作簿 我有一个扩展名为“.xlsm”的文件,它像上面那样受到保护。我有这个文件的密码,我需要用java中的POI 3.8读取它,我怎么做 我曾经使用“Decryptor”类来验证密码,但它没有用。 请帮帮我,我已经在这里面呆了三天了 你可以做到这一点 创建Excel对象 打开工作簿 使用密码ActiveWorkbook取消保护。取消保护 保存文件 在POI中打开 重做步骤1到4,但保护文件 []的检查密

在Excel2007中,我们可以通过在菜单上选择“保护工作簿”并选择“保护结构和窗口”来保护工作簿

我有一个扩展名为“.xlsm”的文件,它像上面那样受到保护。我有这个文件的密码,我需要用java中的POI 3.8读取它,我怎么做

我曾经使用“Decryptor”类来验证密码,但它没有用。 请帮帮我,我已经在这里面呆了三天了

你可以做到这一点

  • 创建Excel对象
  • 打开工作簿
  • 使用密码ActiveWorkbook取消保护。取消保护
  • 保存文件
  • 在POI中打开
  • 重做步骤1到4,但保护文件

  • []的

    检查密码使用的字符编码。如果Excel需要纯ASCII或一些MS编码,那么如果您给它UTF-16,您将遇到问题。这是你应该使用的。当我使用Decryptor时,有一个例外:“您的InputStream既不是OLE2流,也不是OOXML流”。这个文件的扩展名是“xlsm”,我使用POI 3.8。我试图读取一个未受保护的“xlsm”文件,但该文件读取正常。实际上,我需要编写一个允许用户导入excel文件的web应用程序。我的客户有一个excel文件,但它受到保护。