ruoyi导出excel主子表,多条数据报错 java.lang.IllegalArgumentException: Merged region L6 must contain 2 or more问题

需求如图,主子表信息导出,合并主表信息。

直接用若依框架的@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);
                    }

问题解决倒是很简单,只是查错的时候找了半天,希望帮到有同样问题的人。