无法读取.xlsm文件 - POI

时间:2015-07-16 13:23:18

标签: java apache-poi

我已经编写了一个代码来访问.xlsm文件,但它没有这样做。我使用 XSSFWorkBook 和使用 WorkBookFactory 完成的Generic WorkBook尝试了同一个文件。

场景1:

org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(new  File(
                "/filename.xlsm"));

错误:

提供的电子表格似乎是加密的.xlsx文件。它必须在XSSF使用前解密,HSSF不能使用它。

所以我离开了读取文件的通用方法并使用了XSSF。

场景2:

 XSSFWorkbook workBook = new XSSFWorkbook(new FileInputStream(new
     File("/fileName.xlsm")));

错误:

org.apache.poi.POIXMLException:org.apache.poi.openxml4j.exceptions.InvalidFormatException:包应包含内容类型部分[M1.13]

这两种方案都适用于某些.xlsm文件。工作文件和非工作文件的属性和数据是相同的。

有人可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

宣传回答评论......您需要升级您的Apache POI版本!

你可以查看Apache POI changelog here,看看自3年前3.9发布以来有多少变化。这是一个很多页面的修复!你至少需要其中一个......