2016-12-07 4 views
1

ich ein Java-Servlet bin mit einem hochgeladenen Excel-Datei zu analysieren,Apache POI Parse und behandeln leere Zellen

bekomme ich die Datei als und Eingangsstrom und die Arbeitsmappe machen, und dann will ich Schleife obwohl alle Zellen der leeren einschließlich, jetzt ist es das, was ich tue, diese leere Zellen in der Mitte der Daten verarbeitet, aber wenn es eine Zeile, die vollständig leer und dann eine Zeile mit Daten, nachdem es nicht

for (int i = 0; i < mySheet.getPhysicalNumberOfRows(); i++) { 
    Row row = mySheet.getRow(i); 
    for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) { 
      Cell cell = row.getCell(j); 
    } 
} 

So ist es das sind meine Zeilen

item item item 
       //this row is empty 
item item item 

Es versagt wie kann ich damit umgehen?

Danke für die Hilfe

+1

Können Sie nicht 'verwenden getFirstRowNum' und' getLastRowNum' (gleich für Spalten) –

+0

@ScaryWombat dies half mir, danke! – Driice

Antwort

2

Wenn Reihe fectching und zurück null bekommen, dann keine Daten in der Datei für diese Zeile gespeichert sind - es ist völlig leer.

for (int i = 0; i < mySheet.getPhysicalNumberOfRows(); i++) { 
    Row row = mySheet.getRow(i); 
    for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) { 
      Cell cell = row.getCell(c); 
     if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) 
     ..... 
    } 
} 

und überprüfen poi Beispiel POI Example