2016-12-22 6 views
0

Ich habe 100 Zeilen 10 Spalten. Lesen Sie jede Zeile einzeln und Spalte auch. Nach der 10. Spalte bewegt sich der Cursor nicht in die nächste Zeile. Es wird 11 12 13 usw. Spalte. Könnte mir jemand helfen, wie man die nächste Zeile bewegt, wenn man die 10. Spalte liest und wie man aufhört, die leere 11-Spalte zu lesen.Java Apache POI liest leere Spalte nach Zeile Datenspalte

Hier ist ein Code:

while (rowIterator.hasNext()) { 
    row = rowIterator.next(); 
    while (cellIterator.hasNext()) { 
     cell = cellIterator.next(); 
     if(cell.getColumnIndex()==0) { } 
     ..... 
     if(cell.getColumnIndex()==10) { } 
    } 
} 
+0

Setzen Sie den "Cursor" nach dem Ende einer Zeile auf 1 zurück. –

+1

Können Sie ein bisschen mehr beschreiben und ein paar Code-Snippets von dem, was Sie versuchen zu tun? – centic

+0

while (rowIterator.hasNext()) {\t \t row = rowIterator.next(); \t während (cellIterator.hasNext()) {\t \t \t Zelle = cellIterator.next(); \t \t \t \t if (cell.getColumnIndex() == 0) { \t \t \t \t \t \t} ..... \t \t \t if (cell.getColumnIndex() == 10) { \t \t \t \t \t \t} } In dem obigen Code Iterating jede Zelle. Nach der 10. Zelle habe ich leere Spalten. diese leeren Spalten werden iteriert Aber ich möchte in die nächste Zeile nach 10 Zelle bewegen und aufhören zu lesen die leeren Zellen wie 11,12,13 usw. –

Antwort

1

Zuerst, aber das wird das Problem nicht unbedingt beheben, sollten Sie die für jede Syntax iterieren Zeilen und Spalten verwenden, dann, wenn Sie vorbei an Spalte 10 bekommen können nur brechen aus der Schleife wie folgt:

for (Row row : sheet){ 
    for (Cell cell : row) { 
     ... 
     if (cell.getColumnIndex() >= 10) break; 
    } 
} 

Dieses hier im POI Quick Guide dokumentiert ist: https://poi.apache.org/spreadsheet/quick-guide.html#Iterator

HINWEIS: ich breche, wenn Spalte Index ist 10 oder größer (das wäre die 11. Spalte, da die Indizes 0 sind). Ich erwähne das nur, weil Ihr Codebeispiel die Spaltenindizes 0-10 verwendet, aber Ihr Text sagt, dass es nur 10 gültige Spalten gibt.

+0

Dank jmarkmurphy. funktioniert gut. –