Java poiループ行getLastRowNumの不正確な問題の解決

2691 ワード

質問:Excelに10本ある場合、データ、5行削除後、sheet.getLastRowNum()の到値か、それとも10というバグはどうやって解決しますか??
あるいは本来のexcelデータは空であるが、読み取ったsheet.getLastRowNum()は数字があり、しかも大きい....
このような状況はいくつかの不要な循環をして、しかも間違いを報告しやすいので、この問題を解決するために、私はいろいろな資料を探して、最後に簡単な方法でこの問題を避けることができます.
1、CellTypeは以下のタイプである.
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
2、Cellの内容を読み取る時、CellType==CELL_に遭遇するBLANK_TYPEの場合a、cellに従う.getNumericCellValue()は、0.0に読み込まれます.
b、cell.getStringCellValue()を読み込むと、emptyのStringが読み込まれます.
 
まずコードを示します
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;
  }
                

以上の方法は、あなたに理解させるのに十分です.実際の開発でこの問題を回避したい場合は、まずこの方法を理解してから、実際の開発作業に応用します.