|
@@ -109,32 +109,32 @@ public class ExcelFillCellMergeStrategy implements CellWriteHandler {
|
|
|
*/
|
|
|
private void mergeWithPrevRow(WriteSheetHolder writeSheetHolder, Cell cell, int curRowIndex, int curColIndex) {
|
|
|
try {
|
|
|
- //获取当前行的当前列的数据和上一行的当前列列数据,通过上一行数据是否相同进行合并
|
|
|
- final Object curData = cell.getCellType() == CellType.STRING ? cell.getStringCellValue() : cell.getNumericCellValue();
|
|
|
- final Cell preCell = cell.getSheet().getRow(curRowIndex - 1).getCell(curColIndex);
|
|
|
- final Object preData = preCell.getCellType() == CellType.STRING ? preCell.getStringCellValue() : preCell.getNumericCellValue();
|
|
|
-
|
|
|
- // 比较当前行的单元格与上一行是否相同,相同合并当前单元格与上一行
|
|
|
- if (curData.equals(preData)) {
|
|
|
- final Sheet sheet = writeSheetHolder.getSheet();
|
|
|
- final List<CellRangeAddress> mergeRegions = sheet.getMergedRegions();
|
|
|
- boolean isMerged = false;
|
|
|
- for (int i = 0; i < mergeRegions.size() && !isMerged; i++) {
|
|
|
- final CellRangeAddress cellRangeAddr = mergeRegions.get(i);
|
|
|
- // 若上一个单元格已经被合并,则先移出原有的合并单元,再重新添加合并单元
|
|
|
- if (cellRangeAddr.isInRange(curRowIndex - 1, curColIndex)) {
|
|
|
- sheet.removeMergedRegion(i);
|
|
|
- cellRangeAddr.setLastRow(curRowIndex);
|
|
|
- sheet.addMergedRegion(cellRangeAddr);
|
|
|
- isMerged = true;
|
|
|
- }
|
|
|
- }
|
|
|
- // 若上一个单元格未被合并,则新增合并单元
|
|
|
- if (!isMerged) {
|
|
|
- final CellRangeAddress cellRangeAddress = new CellRangeAddress(curRowIndex - 1, curRowIndex, curColIndex, curColIndex);
|
|
|
- sheet.addMergedRegion(cellRangeAddress);
|
|
|
- }
|
|
|
- }
|
|
|
+// //获取当前行的当前列的数据和上一行的当前列列数据,通过上一行数据是否相同进行合并
|
|
|
+// final Object curData = cell.getCellType() == CellType.STRING ? cell.getStringCellValue() : cell.getNumericCellValue();
|
|
|
+// final Cell preCell = cell.getSheet().getRow(curRowIndex - 1).getCell(curColIndex);
|
|
|
+// final Object preData = preCell.getCellType() == CellType.STRING ? preCell.getStringCellValue() : preCell.getNumericCellValue();
|
|
|
+//
|
|
|
+// // 比较当前行的单元格与上一行是否相同,相同合并当前单元格与上一行
|
|
|
+// if (curData.equals(preData)) {
|
|
|
+// final Sheet sheet = writeSheetHolder.getSheet();
|
|
|
+// final List<CellRangeAddress> mergeRegions = sheet.getMergedRegions();
|
|
|
+// boolean isMerged = false;
|
|
|
+// for (int i = 0; i < mergeRegions.size() && !isMerged; i++) {
|
|
|
+// final CellRangeAddress cellRangeAddr = mergeRegions.get(i);
|
|
|
+// // 若上一个单元格已经被合并,则先移出原有的合并单元,再重新添加合并单元
|
|
|
+// if (cellRangeAddr.isInRange(curRowIndex - 1, curColIndex)) {
|
|
|
+// sheet.removeMergedRegion(i);
|
|
|
+// cellRangeAddr.setLastRow(curRowIndex);
|
|
|
+// sheet.addMergedRegion(cellRangeAddr);
|
|
|
+// isMerged = true;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// // 若上一个单元格未被合并,则新增合并单元
|
|
|
+// if (!isMerged) {
|
|
|
+// final CellRangeAddress cellRangeAddress = new CellRangeAddress(curRowIndex - 1, curRowIndex, curColIndex, curColIndex);
|
|
|
+// sheet.addMergedRegion(cellRangeAddress);
|
|
|
+// }
|
|
|
+// }
|
|
|
}catch (Exception e){
|
|
|
log.error("合并单元格error:",e);
|
|
|
}
|