删除指定行
代码
public static void removeRows(Sheet sheet, Integer startRow, Integer endRow) {
int i = 1 + endRow - startRow;
for (int j = 0; j < i; j++) {
removeMergedRegion(sheet, startRow + j);
Row row = sheet.getRow(startRow + j);
if (row != null) {
sheet.removeRow(row);
}
}
sheet.shiftRows(endRow + 1, sheet.getLastRowNum(), -i, true, true);
}
public static void removeMergedRegion(Sheet sheet, int row) {
List<CellRangeAddress> mergedRegions = sheet.getMergedRegions();
Integer j = null;
for (int i = 0; i < mergedRegions.size(); i++) {
int firstRow = mergedRegions.get(i).getFirstRow();
int lastRow = mergedRegions.get(i).getLastRow();
if (firstRow <= row && lastRow >= row) {
j = i;
}
}
if (j == null) {
return;
}
sheet.removeMergedRegion(j);
removeMergedRegion(sheet, row);
}