想实现excel文件内容读取到数据库中,而且excel是存在合并单元格这种情况的,便考虑借助EasyExcel来实现
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
</dependencies>
<!-- 管理子项目中引用的依赖的版本 -->
<dependencyManagement>
<dependencies>
<!--只是声明,没有导入-->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
</dependencyManagement>
运行代码时,发现报错如下
com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader
这个异常表明在使用阿里巴巴的 EasyExcel 库时,发生了 ExcelAnalysisException,并且其中的原因是 java.lang.NoClassDefFoundError: org/apache/poi/P。这通常是因为缺少 Apache POI 库的相关依赖引起的。
要解决这个问题,需要确保项目中包含了 Apache POI 库的正确版本,正如上所述,我是从之前项目的pom里直接引入的,怀疑是poi-ooxml版本的问题
修改poi-ooxml版本为easyexcel中的版本 如上原因,把poi-ooxml版本替换为3.17,再去运行项目,果然解决了
在项目中,确保已经添加了 Apache POI 的依赖。具体的配置方式取决于你使用的构建工具,比如 Maven 或 Gradle。
对于 Maven,在你的 pom.xml 文件中添加以下依赖:
<dependencies>
<!-- 其他依赖项 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>你需要的版本号</version>
</dependency>
</dependencies>
对于 Gradle,在你的 build.gradle 文件中添加以下依赖:
dependencies {
// 其他依赖项
implementation 'org.apache.poi:poi:你需要的版本号'
}
确保你选择的 Apache POI 版本与 EasyExcel 兼容
确保你使用的 EasyExcel 版本与你添加的 Apache POI 版本兼容。 可以查看 EasyExcel 的文档或者官方说明,了解哪个版本与哪个版本的 Apache POI 最为匹配。
有时候,项目中可能存在多个库引入了不同版本的 Apache POI,导致依赖冲突。你可以使用你的构建工具的命令来查看项目的依赖关系,以确定是否存在冲突。
对于 Maven,你可以运行以下命令:
mvn dependency:tree
对于 Gradle,你可以运行以下命令:
./gradlew dependencies
查看输出,检查是否有多个版本的 Apache POI 被引入
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有