前言
Hello,hello!这里是Blue,今天我写代码遇到了一个这样的问题,我在使用easyexcel的时候它无法去执行我的操作,通过我一定的判断最终解决了问题
报错
com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader
at com.alibaba.excel.analysis.ExcelAnalyserImpl.<init>(ExcelAnalyserImpl.java:57)
at com.alibaba.excel.ExcelReader.<init>(ExcelReader.java:145)
at com.alibaba.excel.read.builder.ExcelReaderBuilder.build(ExcelReaderBuilder.java:193)
at com.alibaba.excel.read.builder.ExcelReaderBuilder.sheet(ExcelReaderBuilder.java:229)
at com.alibaba.excel.read.builder.ExcelReaderBuilder.sheet(ExcelReaderBuilder.java:217)
at com.example.jishedemo1.Worldtext.test6(Worldtext.java:139)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader
at org.openxmlformats.schemas.spreadsheetml.x2006.main.WorkbookDocument$Factory.parse(Unknown Source)
at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.analysisUse1904WindowDate(XlsxSaxAnalyser.java:117)
at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.<init>(XlsxSaxAnalyser.java:79)
at com.alibaba.excel.analysis.ExcelAnalyserImpl.choiceExcelExecutor(ExcelAnalyserImpl.java:99)
at com.alibaba.excel.analysis.ExcelAnalyserImpl.<init>(ExcelAnalyserImpl.java:51)
... 8 more
Caused by: java.lang.ClassNotFoundException: org.apache.poi.POIXMLTypeLoader
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 13 more
解决思想
我看着这一行代码错误,这个错误 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader
指出我的 Java 应用程序在运行时无法找到 Apache POI 库中的 POIXMLTypeLoader
类,这就很奇怪了,在这个地方我并没有使用apache poi库,为什么会报如下错误呢?带着这个好奇,我问了文心一言
依赖冲突?我细想了一下,既然这两个库都是用来操作excel,word 这些东西的,是否开发者在使用的时候,是基于poi库所开发出来的easyexcel呢?翻了一下啊官网,以及百度。的确证实了我这个想法,easyexcel是基于poi开发的,也就是说,它本身就有poi的依赖(如下图)
那么问题就解决了,我在项目中即使用了poi,又使用了easyexcel,此时同时使用就会造成依赖冲突。 那么问题就是如何解决依赖冲突喏!
解决方案
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel-core</artifactId>
<version>自己的版本</version>
<exclusions>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
</exclusion>
</exclusions>
</dependency>
结尾
标签:java,easyexcel,excel,alibaba,apache,poi,Apache,com From: https://blog.csdn.net/m0_75148088/article/details/140586029希望本篇文章可以帮助各位