Merged region B8 must contain 2 or more cells

本文讲述了作者在使用EasyExcel自定义合并单元格时遇到的错误,即B8单元格合并必须包含两个及以上单元格。通过检查业务逻辑发现未跨行跨列导致报错,解决方案是在合并前添加判断。问题解决后,分享了相关代码示例和经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近使用EasyExcel自定义合并单元格出现bug如下

Merged region B8 must contain 2 or more cells

字面意思是B8合并的单元格至少需要合并2个以上的单元格。

cellRangeAddress = new CellRangeAddress(firstRow, lastRow, firstColumn, lastColumn);

合并单元格跨行/跨列。

debug发现既没跨行也没跨列,所以就报错了。

解决方案: 

        我的业务逻辑只会跨行不会跨列,所以合并单元格前加个判断就行。

// 合并单元格信息,跨行信息由用户参与考试的次数决定
if (examUsers.get(i).getSubmits().size() > 1) {
  for (int c = 0; c < ExcelConsts.Field.getMergeFileds().size(); c++) {
      mergeList.add(CustomerMergeHandler.createMergeMap("sheet 1", rowCount, rowCount + examUsers.get(i).getSubmits().size() - 1, c + 1, c + 1));
  }
}

问题解决,喜大普奔。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值