NullPointerException beim Auslesen einer xlsx

Joschi1711

Mitglied
Hallo Leute,
eigentlich wollte ich vermeiden, wieder im Forum zu fragen, aber hier komme ich nicht weiter:

Java:
public class lesen {
 
    public static void main(String[] args) throws Exception {
    int i = 0;
      FileInputStream fis = new FileInputStream(
       new File("D:\\Cloud\\Projekte\\Inventur Vodafone\\Daten\\InventurDaten.xlsx"));
      XSSFWorkbook workbook = new XSSFWorkbook(fis);
      XSSFSheet sheet = workbook.getSheetAt(0);
  
         Iterator < Row > rowIterator = sheet.iterator();
         while ( rowIterator.hasNext())
         {
         Cell lief = sheet.getRow(i).getCell(1);
         Cell name = sheet.getRow(i).getCell(2);
         Cell ean = sheet.getRow(i).getCell(3);
         Cell preis = sheet.getRow(i).getCell(4);
         Cell stk = sheet.getRow(i).getCell(5);
                
         System.out.print(" Lieferant: "+lief);
         System.out.print(" Bezeichnung: "+name);
         System.out.print(" EAN: "+ean);
         System.out.print(" Preis: "+preis+" € ");
         System.out.println(" Menge: "+stk);
         i++;
         }
}
}

Wirft mir :
Exception in thread "main" java.lang.NullPointerException at inventur.lesen.main(lesen.java:33)

was übersehe ich hier???
 
Iterator.hasNext() setzt die Iteration nicht fort. Du rufst also quasi immer wieder Iterator.hasNext() am Anfang der Iteration auf und incrementierst so lange, wie es die Anzahl der tatsächlichen Reihen bedingt durch i++ zulässt. Wenn du beim Iterator bleiben willst, dann solltest du unbedingt auch Iterator.next() verwenden. Die Verwendung von einem Index ist an der Stelle ungünstig. Iterator.next() gibt dir bereits das Iterations-Element zurück, auf welches du dann zugreifen kannst und springt mit dem "Cursor" auf das nächste Element in der Iteration.

Also

Java:
Iterator<Row> rowIterator = sheet.iterator();
while(rowIterator.hasNext()) {
    Row currentRow = rowIterator.next();
    Cell lief = currentRow.getCell(1);
    //...
}
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück