异常java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Sheet.getDrawingPat原因与解决

本文解决了一个在使用easypoi进行Excel导出时遇到的java.lang.NoSuchMethodError异常,原因是依赖的jar包版本不兼容。通过将poi相关jar包从3.2.0版本替换为3.0.1版本,成功解决了问题。

在做excel导出时遇到的异常:

**java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Sheet.getDrawingPat**

原因是:jar包不兼容

这是依赖

<!--easypoi依赖-->
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>3.0.1</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>3.0.1</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>3.0.1</version>
        </dependency>

解决方法:需要把两个和poi有关的jar替换成别的的版本。
之前的我是3.2.0版本的,替换成3.0.1就可以了。每个试一下

`java.lang.NoSuchMethodError: 'org.apache.poi.ss.usermodel.CellType org.apache.poi.ss.usermodel.Cell.getCellTypeEnum()'` 错误通常是由于项目中使用的 Apache POI 库版本不兼容导致的。在 Apache POI 3.15 及更早版本中,`Cell` 类使用的是 `getCellTypeEnum()` 方法;而从 Apache POI 3.16 版本开始,`getCellTypeEnum()` 方法被弃用,取而代之的是 `getCellType()` 方法。 要解决这个问题,可以考虑以下两种方法: #### 方法一:升级 Apache POI 版本 如果项目允许,可以将 Apache POI 库升级到 3.16 或更高版本。在 `pom.xml` 中添加以下依赖: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.3</version> <!-- 可以使用最新稳定版本 --> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.3</version> <!-- 可以使用最新稳定版本 --> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>5.2.3</version> <!-- 可以使用最新稳定版本 --> </dependency> ``` 然后,将代码中所有的 `getCellTypeEnum()` 方法替换为 `getCellType()` 方法。例如: ```java import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; // ... Cell cell = ...; CellType cellType = cell.getCellType(); ``` #### 方法二:降级 Apache POI 版本 如果项目中使用的其他依赖高版本的 Apache POI 不兼容,可以将 Apache POI 库降级到 3.15 或更早版本。在 `pom.xml` 中添加以下依赖: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency> ``` 确保代码中使用的是 `getCellTypeEnum()` 方法。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值