org.apache.poi.util.POILogger, but class was expected异常的原因及解决方案

各位小伙伴在项目开发过程中可能会需要对excel表格文件进行导入导出;那么完成这项功能其实有两钟方法:1、使用Apache POI框架对excel进行操作;2、使用EasyExcel;二者都可以解析Excel文件。但是poi存在的一个非常严重的问题就是非常耗内存,虽然poi有一套SAX模式的API可以一定程度解决内存溢出的问题,但内存消耗依旧很大。如果各位小伙伴感兴趣的话我会在后面将两种方法的实现都整理出来分享给大家,现在先说使用poi 遇到的一个异常: java.lang.IncompatibleClassChangeError:Found interface org.apache.poi.util.POILogger, but class was expected。

出现这个异常的原因其实很简单,大部分小伙伴在进行项目开发的时候都是在现有的框架中填写代码,所以说在pom文件导入依赖的时候可能会没有注意pom文件原先已经存在了poi,如下

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>

可以看见这个 poi 依赖的版本号是 4.1.2,而我们出现这个异常的原因就是因为我们缺少 poi-ooxml 或导入的 poi-ooxml 版本号不一致,所以我们只需要将 poi-ooxml 依赖加入或将版本号修改为一致即可解决该问题,如下:

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

猜你喜欢

转载自blog.csdn.net/m0_64055755/article/details/128934980
今日推荐