解決java poi循環遍歷行getLastRowNum出現不許確的問題

問題:當Excel中原有10條,數據,刪除5行後,sheet.getLastRowNum()的到值仍是10這個bug如何解決??post

更或者原本excel數據爲空,但是讀取的sheet.getLastRowNum()倒是有數字,並且還比較大....spa

這種狀況會致使作了一些沒必要要的循環,並且還容易報錯,因此爲了解決此問題,我查找了各類資料,最後用一個簡單的方法能夠避免該問題excel

一、CellType以下類型:code

CellType Value
CELL_TYPE_NUMERIC 0
CELL_TYPE_STRING 1
CELL_TYPE_FORMULA 2
CELL_TYPE_BLANK 3
CELL_TYPE_BOOLEAN 4
CELL_TYPE_ERROR 5

二、在讀取Cell內容時,遇到當CellType == CELL_BLANK_TYPE時
  a、按照cell.getNumericCellValue()讀取,會讀取到0.0。blog

  b、按照cell.getStringCellValue()讀取,會讀取到empty的String。開發

 

下面我就先展現一下代碼get

public static boolean isRowEmpty(Row row){ System.out.println("讀取excle有數據的列數爲"+row.getLastCellNum()); for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) { Cell cell = row.getCell(i); if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK){ System.out.println("循環第幾回:"+(i+1)); return false; }else { System.out.println("實際的excle有數據的列數爲"+(i+1)); break; } } return true; } 

以上的方法,足夠讓你明白。若是你想在你的實際開發中避免該問題,就先了解這個方法,而後再應用到你的實際開發工做中去。table

相關文章
相關標籤/搜索