Ich habe Probleme mit der Iteration über Zeilen und Zellen in Excel mit Java. Ich habe in Blatt strukturierte Daten auf diese Weise:Wie Zellenwert ohne Iterator vorwärts zu bewegen - Excel, Java POI
ich alle Zahlen sammeln und es an den Konstruktor übergeben. Ich habe versucht, etw wie folgt aus:
Iterator<Row> iterator = firstSheet.iterator();
while (iterator.hasNext()){
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
int id = (int) cellIterator.next().getNumericCellValue();
int pr = (int) cellIterator.next().getNumericCellValue();
int[] prId = new int[2];
prId[0] = (int) cellIterator.next().getNumericCellValue();
iterator.next(); // i have to move down one row to get 5 and 6
precId[1] = // what should I type here?? cellIterator.next() will cause, that cell with value "5" will be omitted and I will get "6"
int co = (int) cellIterator.next().getNumericCellValue();
list.add(new Rule(id, pr, prId, co));
}
Wie damit umgehen? Vielen Dank im Voraus :)
EDIT:
entschied ich mich Zellen in anderer Art und Weise zu erhalten:
for(int rowNum = rowStart+1; rowNum < rowEnd; rowNum++){
Row r = sheet.getRow(rowNum);
if(r == null){
continue;
}
int lastColumn = Math.max(r.getLastCellNum(), 4);
for(int cn = 0; cn < lastColumn; cn++){
@SuppressWarnings("deprecation")
Cell c = r.getCell(cn, Row.RETURN_BLANK_AS_NULL);
if(c == null){
continue;
}else{
System.out.println(c);
}
}
}
Diese Lösung ist deutlich besser, aber ich habe Probleme, weil statt Wert zeigen Zellen von System.out.println(c)
i müssen diesen Wert wie im Beispiel mit Iteratoren an den Konstruktor übergeben. Aber jetzt habe ich Zugriff auf die Zelle mit Schleife, so kann ich nicht Wert der nächsten Zelle mit .next() oder etw ähnlich - ich kann nicht die nächste Zelle in einer Zeile Code, so wie das gleiche Objekt zu erstellen wie oben (mit Iterator) aber mit diesem Code?
"Wie bekomme ich den Zellenwert, ohne vorwärts zu gehen?" Speichern Sie den Wert, bevor Sie fortfahren? – Moira
@ 1blustone Ich weiß nicht, wie man diesen Wert bekommt. Lesen Sie meine Erklärung, nicht nur ein tile :) – pulpet112
Ich tat, weshalb ich sagte, es zu speichern. Was ist das Problem mit dem Iterator weiter? Haben Sie eine Zeile wie 'Cell stored = cellIterator.next()' und verwenden Sie diese dann für 'precId [1]'? oder habe ich nicht richtig verstanden – Moira