Anzeige

NullPointerException beim Auslesen einer xlsx


#1
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???
 

HonniCilest

Erfahrenes Mitglied
#3
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:
Anzeige

Neue Beiträge

Anzeige