当我尝试打开POI的.xlsx文件打开的工作簿时,我得到一个异常:POI不能打开在Excel
java.lang.IllegalArgumentException: The supplied POIFSFileSystem does not contain a BIFF8 'Workbook' entry. Is it really an excel file?
at org.apache.poi.hssf.usermodel.HSSFWorkbook.getWorkbookDirEntryName(HSSFWorkbook.java:223)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:245)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:188)
我注意到代码正在考虑它,即使一个.xls文件名称是.xlsx,我使用WorkbookFactory.create(fileInputStream);
来打开文件。
我尝试将文件重命名为.zip并在WinZip中打开,并且出现错误 - 无效的zip文件。
该文件在Excel中打开,如果我保存它(没有进行任何更改),那么它在POI中也会正确打开。
它受到保护,但没有加密。我试过你的代码,并得到一个例外,它无法找到一个算法 – qwerty
在许多情况下,由于Microsoft最知道的原因,protected = encrypted。可以用默认密码保护,但仍然会被加密 – Gagravarr
有趣!那么为什么我会得到一个异常java.security.NoSuchAlgorithmException:无法找到任何支持AES/ECB/NoPadding的提供商 – qwerty