2012-12-03 108 views
0

有人能告訴我如何迭代和刪除使用apache poi的excel文件中的所有空行嗎?我用我想刪除的行索引調用這2個函數,但第二個(移位)總是給我Minumum行索引爲0 exceltion。用JAVA刪除excel文件中的所有空行

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); 
    } 
} 

感謝

回答

0

的問題是在Excel文件合併該列。

0
sheet.removeRow(row) 

將刪除該行,但它會在您的數據中創建一個空白區域(空洞)或空行,因此會使其不一致。你可以做的是刪除後你可以移動你的行,這意味着移動所有剩餘的行一步使用這個:

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