POI removeRow和shiftRows在工作表末尾留下空白行。如何删除它们?

时间:2012-07-17 10:34:16

标签: java apache excel apache-poi delete-row

我正在使用POI来操作现有的Excel工作表 我想删除开头的行并在末尾添加行。当我删除行时,我会移动所有行。

int numOfRows = sheet.getLastRowNum()+1;
int extraRows = numOfRows - maxAllowedRows;             
for(int i=1;i<=extraRows;i++){  //i intialized with 1 to ignore header row.
    sheet.removeRow(sheet.getRow(i));
}
sheet.shiftRows(extraRows+1,sheet.getLastRowNum(),-extraRows);

在程序的当前运行中,它工作正常。但是当程序再次运行时,在第一次运行中删除和移动的行数量相同,空白行的数量会出现在底部的工作表中,并且我尝试在工作表底部添加的任何新行都会在这些空白后添加行。

有没有办法避免在删除和移位操作后出现空白行(即有没有办法可以删除行?

2 个答案:

答案 0 :(得分:0)

类似问题Here

我认为shiftRows方法调整了(区域? - 抱歉,忘记了电子表格术语)。

答案 1 :(得分:0)

我不是POI的专家,它让我有些头疼,但我的理解是你可以在空白行上添加新行。 您需要跟踪空白行的开始位置,然后使用HSSFSheet.addRow(index)添加行