|
|
|
@ -98,9 +98,30 @@ public class CellMergeStrategy extends AbstractMergeStrategy {
|
|
|
|
|
cellList.add(new CellRangeAddress(repeatCell.getCurrent() + rowIndex, i + rowIndex - 1, colNum, colNum));
|
|
|
|
|
}
|
|
|
|
|
map.put(field, new RepeatCell(val, i));
|
|
|
|
|
} else if (i == list.size() - 1) {
|
|
|
|
|
if (i > repeatCell.getCurrent()) {
|
|
|
|
|
cellList.add(new CellRangeAddress(repeatCell.getCurrent() + rowIndex, i + rowIndex, colNum, colNum));
|
|
|
|
|
} else if (j == 0) {
|
|
|
|
|
if (i == list.size() - 1) {
|
|
|
|
|
if (i > repeatCell.getCurrent()) {
|
|
|
|
|
cellList.add(new CellRangeAddress(repeatCell.getCurrent() + rowIndex, i + rowIndex, colNum, colNum));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// 判断前面的是否合并了
|
|
|
|
|
RepeatCell firstCell = map.get(mergeFields.get(0));
|
|
|
|
|
if (repeatCell.getCurrent() != firstCell.getCurrent()) {
|
|
|
|
|
if (i == list.size() - 1) {
|
|
|
|
|
if (i > repeatCell.getCurrent()) {
|
|
|
|
|
cellList.add(new CellRangeAddress(repeatCell.getCurrent() + rowIndex, i + rowIndex, colNum, colNum));
|
|
|
|
|
}
|
|
|
|
|
} else if (repeatCell.getCurrent() < firstCell.getCurrent()) {
|
|
|
|
|
if (i - repeatCell.getCurrent() > 1) {
|
|
|
|
|
cellList.add(new CellRangeAddress(repeatCell.getCurrent() + rowIndex, i + rowIndex - 1, colNum, colNum));
|
|
|
|
|
}
|
|
|
|
|
map.put(field, new RepeatCell(val, i));
|
|
|
|
|
}
|
|
|
|
|
} else if (i == list.size() - 1) {
|
|
|
|
|
if (i > repeatCell.getCurrent()) {
|
|
|
|
|
cellList.add(new CellRangeAddress(repeatCell.getCurrent() + rowIndex, i + rowIndex, colNum, colNum));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|