com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/P

想实现excel文件内容读取到数据库中,而且excel是存在合并单元格这种情况的,便考虑借助EasyExcel来实现

前置操作

因为要使用EasyExcel,所以在pom.xml中引入EasyExcel和poi相关依赖

<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

在这里插入图片描述

原因

因为之前项目的pom里引入过poi-ooxml版本是4.0.0,所以直接引了过来,实际应该看easyexcel依赖中的poi-ooxml版本。

点击easyexcel依赖可以看到poi-ooxml版本是3.17
在这里插入图片描述

解决

修改poi-ooxml版本为easyexcel中的版本
如上原因,把poi-ooxml版本替换为3.17,再去运行项目,果然解决了

猜你喜欢

转载自blog.csdn.net/m0_37482190/article/details/129987476