我正在使用Apache POI XSSF API从Excel工作表中删除一行或多行。 以下是在单个活动中删除多行的代码。
for (int i = startRowIndexToDel; i <= endRowIndexToDel; i++) {
XSSFRow row = sheet.getRow(i);
if (row != null) {
sheet.removeRow(row);
}
}
if (endRowIndexToDel < lastRowIndex) {
sheet.shiftRows(endRowIndexToDel + 1, lastRowIndex,
startRowIndexToDel - (endRowIndexToDel + 1));
}
当我需要删除的行没有单元格注释时,上面的代码可以正常工作。 当他们有单元格注释时,注释会留在后面并分配给移动到已删除行的位置的行,这不是我想要的。
当我需要只删除一行并且恰好是最后一行时,情况也是如此。 在这种情况下,我的代码不会移动行,因为它是最后一行。
我知道使用removeRow()不会删除&#39;行,就像我们右键单击excel行并选择delete一样,而当我们在excel中选择一行并单击删除键盘按钮时,就会清除数据行。我也注意到后一个动作也没有清除单元格注释。
我想知道是否有其他人注意到这个问题以及你对此有何修复。我可以解析我要删除的行中的所有单元格,如果它们存在则删除单元格注释,但我不想这样做。