easyexcel异常类_alibaba-easyexcel ExcelGenerateException: 异常问题

异常信息:

Exception in thread "main" com.alibaba.excel.exception.ExcelGenerateException: java.lang.AbstractMethodError:

Method org/apache/poi/xssf/streaming/SXSSFSheet.addMergedRegionUnsafe(Lorg/apache/poi/ss/util/CellRangeAddress;)I is abstractat com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:67)

at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:161)

at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:146)

at com.guoll.modules.utils.easyexcel.write.factory.CustomWriteFactory.write(CustomWriteFactory.java:147)

at com.guoll.modules.utils.easyexcel.EasyExcelBase.core(EasyExcelBase.java:65)

at com.guoll.modules.utils.easyexcel.EasyExcelBase.main(EasyExcelBase.java:53)

Caused by: java.lang.AbstractMethodError: Method org/apache/poi/xssf/streaming/SXSSFSheet.addMergedRegionUnsafe(Lorg/apache/poi/ss/util/CellRangeAddress;)I is abstractat org.apache.poi.xssf.streaming.SXSSFSheet.addMergedRegionUnsafe(SXSSFSheet.java)

at com.alibaba.excel.context.WriteContextImpl.addMergedRegionToCurrentSheet(WriteContextImpl.java:188)

at com.alibaba.excel.context.WriteContextImpl.initHead(WriteContextImpl.java:173)

at com.alibaba.excel.context.WriteContextImpl.initSheet(WriteContextImpl.java:161)

at com.alibaba.excel.context.WriteContextImpl.currentSheet(WriteContextImpl.java:131)

at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:56)

...5 more

产生原因:

@ExcelProperty value 字段 存在 多个

在这个版本中BaseRowModel 已经被定义成了失效,所以我并没在 mode 中 继承它。但是这样使用下面的这些注解 是没有问题。意思就是 我只要将 value 只给定一个参数,是没有问题。

@Data

@ContentRowHeight(34)

@HeadRowHeight(34)public classCaseTempMode{

@ColumnWidth(13)

@ExcelProperty(value= {"模块","模块一"}, index = 0)privateString model1 ;

@ColumnWidth(13)

@ExcelProperty(value= {"模块二"}, index = 1)privateString model2;

....

....

}

版本信息:

该版本是目前我使用时最新的版本,百度上的案例基本上都是 1.x 的,我能遇到这个问题,很有可能与版本有关系。该框架开发团队应该优化过,若要开启复杂表头,可能需要配置一些东西。

com.alibaba

easyexcel

2.1.4

解决方案:

替换 apache.poi 的版本 为该  easyexcel pom.xml 中版本(这句话优点绕,我都这么觉得)

首先我们在maven 中 找到  该项目的 easyexcel 的pom.xml

我发现 阿里 用的版本已经是 3.17 的了,最开始项目并不是 用的  easyexcel  而就是用的 apache.poi  在我项目中 该apache.poi 版本 是 3.14  所以就报了这个错。

让我注意到这一点的 是这段异常。

Caused by: java.lang.AbstractMethodError: Method org/apache/poi/xssf/streaming/SXSSFSheet.addMergedRegionUnsafe(Lorg/apache/poi/ss/util/CellRangeAddress;)I is abstract

最后 我将项目的中 apache.poi 版本升级到了 3.17 也就解决了这个问题。如果最开始 选择用 easyexcel 的话,应该不会出现这个问题,毕竟版本会根据阿里的来。

成功后的结果:

使用 @ExcelProperty value 多个参数问题 也就解决了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值