最近使用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));
}
}
问题解决,喜大普奔。