ruoyi导出excel主子表,多条数据报错 java.lang.IllegalArgumentException: Merged region L6 must contain 2 or more问题
只需要加上判断条件起始单元格一致时跳过设置合并单元格,就可以解决这个问题。直接用若依框架的@Excel注解,需要合并的列上加上属性 needMerge=true,子表直接正常使用list来接收,子表需要导出的属性也正常使用@Excel 注解来加上注释。具体属性介绍参考官方手册。只是这样的话,导出的时候会报错,只有一条数据的时候合并没问题,多个数据的时候问题出现了。直接去他的ExcelUtil类下面
需求如图,主子表信息导出,合并主表信息。

直接用若依框架的@Excel注解,需要合并的列上加上属性 needMerge=true,子表直接正常使用list来接收,子表需要导出的属性也正常使用@Excel 注解来加上注释。具体属性介绍参考官方手册
地址:后台手册 | RuoYi

只是这样的话,导出的时候会报错,只有一条数据的时候合并没问题,多个数据的时候问题出现了。直接去他的ExcelUtil类下面找到报错的位置,打断点查看,两个属性值
合并的开始单元格行 subMergedFirstRowNum;
合并的结束单元格行 subMergedLastRowNum。

结合报错信息:Merged region L6 must contain 2 or more cells 合并的时候必须有两个单元格。发现他的开始和结束单元格参数的值相等。只需要加上判断条件起始单元格一致时跳过设置合并单元格,就可以解决这个问题。

代码如下:
if(subMergedFirstRowNum!=subMergedLastRowNum){
CellRangeAddress cellAddress = new CellRangeAddress(subMergedFirstRowNum, subMergedLastRowNum, column, column);
sheet.addMergedRegion(cellAddress);
}
问题解决倒是很简单,只是查错的时候找了半天,希望帮到有同样问题的人。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)