使用JAVA删除excel文件中的所有空行

时间:2012-12-03 13:10:02

标签: java apache apache-poi poi-hssf

有人可以告诉我如何使用apache poi迭代和删除excel文件中的所有空行吗?我用行索引调用那两个函数我想删除,但第二个(shift)总是给我Minumum行索引是0 exceltion。

 public static void removeRow(HSSFSheet sheet, int rowIndex) {

   HSSFRow removingRow = sheet.getRow(rowIndex);
   if (removingRow != null) {
       sheet.removeRow(removingRow);
   }
 }

 public static void shiftRow(HSSFSheet sheet, int rowIndex) {
   int lastRowNum = sheet.getLastRowNum();
   if (rowIndex >= 0 && rowIndex < lastRowNum) {
       sheet.shiftRows(rowIndex+1, rowIndex+1, -1);
   }
 }

由于

2 个答案:

答案 0 :(得分:0)

问题出在excel文件中合并的列中。

答案 1 :(得分:0)

sheet.removeRow(row)

将删除该行,但会在数据中创建一个空格(空洞)或空行,因此会使其不一致。您可以做的是删除后可以移动行,这意味着使用此步骤将所有剩余的行向上移动:

int rowToDeleteIndex = // The row number you want to delete
int lastRowIndex = worksheet.getLastRowNum();
worksheet.shiftRows(rowToDeleteIndex + 1, lastIndex, -1);