前言:
异常信息如下:
java.lang.NoSuchFieldError: Factory
at org.apache.poi.xssf.model.ThemesTable.readFrom(ThemesTable.java:119)
at org.apache.poi.xssf.model.ThemesTable.<init>(ThemesTable.java:87)
at org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java:61)
at org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:661)
at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:165)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:260)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:290)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:286)
主要是底层依赖的是easyExcel后面因为太能吃内存,有替换成POI,导致的jar原来的依赖有问题,加载失败, 需要排查下那些jar冲突,需要进行处理;
解决办法呢就是添加下其他的依赖,声明版本信息:
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-full -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-full</artifactId>
<version>5.2.3</version>
</dependency><!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>