需求如图,主子表信息导出,合并主表信息。
直接用若依框架的@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);
}
问题解决倒是很简单,只是查错的时候找了半天,希望帮到有同样问题的人。