poi 读取使用 Strict Open XML 保存的 excel 文档

poi 读取使用 Strict Open XML 保存的 excel 文档

某项目有一个功能需要读取 excel 报表内容,使用poi读取时报错:

poi 读取使用 Strict Open XML 保存的 excel 文档

具体错误为:

org.apache.poi.POIXMLException: Strict OOXML isn't currently supported, please see bug #57699
at org.apache.poi.POIXMLDocumentPart.getPartFromOPCPackage(POIXMLDocumentPart.java:668)
at org.apache.poi.POIXMLDocumentPart.<init>(POIXMLDocumentPart.java:128)
at org.apache.poi.POIXMLDocumentPart.<init>(POIXMLDocumentPart.java:118)
at org.apache.poi.POIXMLDocument.<init>(POIXMLDocument.java:61)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:295)
at com.example.ReadExcel.main(ReadExcel.java:27)

错误原因:在高版本 excel 中,另存为文件有一个另存为 Strict Open XML 格式,虽然后缀也为 .xlsx,但 poi 的最新版本(3.17)无法解析。

poi 读取使用 Strict Open XML 保存的 excel 文档

各种论坛搜索,国外大神在github上公布了一个临时解决方案,亲测可用:

https://github.com/pjfanning/ooxml-strict-converter

引入如下两个文件,配置对路径就好~~

poi 读取使用 Strict Open XML 保存的 excel 文档

上一篇:poi做Excel数据驱动,支持.xls和.xlsx格式的excel文档,比起jxl强大不少


下一篇:Spring MVC 配置文件dispatcher-servlet.xml 文件详解