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

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

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


具体错误为:

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)无法解析。

各种论坛搜索,国外大神在github上公布了一个临时解决方案,亲测可用:
https://github.com/pjfanning/ooxml-strict-converter
引入如下两个文件,配置对路径就好~~

原文地址:https://www.cnblogs.com/anzerong2012/p/9100065.html