groovy运行poi包处理xlsx文件报NoClassDefFoundError
背景:简单的在java上运行poi包处理xlsx文件,正常解析。使用groovy执行相关xlsx文件解析的程序时,报错。报错日志:
java.lang.NoClassDefFoundError: org/openxmlformats/schemas/spreadsheetml/x2006/main/CTExtensionList
poi版本:
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version>
</dependency>
原因:OOXML只包含poi-ooxml-schemas
模式中最常见的部分。如果需要使用公共集之外的任何模式,则必须获取完整的OOXML Schemas jar,目前为ooxml-schemas-1.4.jar。
调整mvn依赖后,正常运行:
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.3</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>ooxml-schemas</artifactId><version>1.4</version>
</dependency>