EasyExcel导出excel版本冲突

java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.CellStyle.setAlignment(S)V

查了下官方文档 说是jar 冲突了
在这里插入图片描述

因为非常多的复杂的word文档要导出 所以 自己在项目里面添加了读取ftl 模板导出的方式 做完之后测试导出excel数据是可以的 然后在测试导出word也可以
但是突然有一天客户反馈excel导出数据没反应了 查看日志发现java.lang.NoSuchMethodError:org.apache.poi.ss.usermodel.CellStyle.setAlignment(S)V
发现项目之前引用的poi-tl是1.6.0 里面的poi 相关的包都是4.10的版本

我就想着降低poi-tl的版本 查看了一下1.5.0 版本 里面poi 相关的包都是3.16的版本
引用的 easyExcel 里面的poi相关的jar都是3.17版本的
这样就出现上面的那个版本冲突的问题
于是使用pom里面的思维导图来查看依赖
在这里插入图片描述
进来之后就会发现很多红色虚线 上面还会标记版本信息 然后双击那些有虚线的依赖 双击对应的依赖会跳转到对应的pom里面 把你面的版本改成对应的你需要的 有一些pom里面是没有加上版本的 可以加上指定版本
下图就是改好 全部改成3.16
在这里插入图片描述
举个栗子
双击 poi-ooxml-schemas 这个依赖 就跳转到 easyexcel-2.2.11这个jar包的pom 里面 然后发现2个poi 相关的 版本都是3.17的 然后改成3.16

在这里插入图片描述

clean项目 重新加载一下依赖
在用思维导图重新查看依赖就会发现没有冲突的jar包了 这样就版本统一了
在这里插入图片描述

打开思维导图你会发现有一个谷歌的包到处都用到了 基本是一处是一个版本 一片大红 就是下面的那个 【guava】对于有点小强迫症的人来说真的很难受
然后就一个一个全部点进去改版本 统一版本
在这里插入图片描述

要说一下的是 之前在项目的pom 引入和poi相关的包好几个 然后在这次排查问题的时候全部注掉了 最后只引入下面3个和poi有关的包

		<dependency>
			<groupId>org.jeecgframework</groupId>
			<artifactId>autopoi-web</artifactId>
			<version>1.2.1</version>
			<exclusions>
				<exclusion>
					<groupId>commons-codec</groupId>
					<artifactId>commons-codec</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>easyexcel</artifactId>
			<version>2.2.11</version>
		</dependency>
		<dependency>
            <groupId>com.deepoove</groupId>
            <artifactId>poi-tl</artifactId>
            <version>1.5.0</version>
        </dependency>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值