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

Java POI removeRow和shiftRows在工作表末尾留下空行。如何删除它们?,java,apache,excel,apache-poi,delete-row,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.re

我正在使用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);
int numorrows=sheet.getLastRowNum()+1;
int extraws=numorrows-maxAllowedRows;
对于(inti=1;i类似问题


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

< P>我不是POI的专家,它给了我一些头痛,但我的理解是您可以在空白行上添加新行。
您需要跟踪空白行的起始位置,然后使用HSSFabel.AdDRW(索引)添加行。

在发布此问题之前,我已经看到了您提供的链接。我的问题有点不同。我需要阅读excel,然后向其中添加行,并且excel中的最大行数有一个限制。因此,在添加新行之前,我需要检查行数是否超过限制。如果是这样,我需要删除shee中顶部的行然后在底部添加行。现在,当我第一次这样做时,效果很好。但是在第二次运行中,在第一次运行中删除并移动的空白行和填充行一样多出现在工作表中。任何新添加的行都会在这些空白行之后添加