Apache POI .getCell() error, java.lang.NullPointerException Nicht Lesen kann-Zelle wenn Sie leer

Habe ich Probleme kürzlich mit Apache POI .getCell () - Methode für Excel-Dateien. Wenn ich versuche, umzusetzen Cell newCell = Blatt.getRow(rowNumber).getCell(spalteanzahl) oder etwas ähnliches, ich bekomme immer den Fehler

Exception in thread "main" java.lang.NullPointerException
at ExcelWriter.getWorkbook(ExcelWriter.java:80)
at Gui2.<init>(Gui2.java:93)
at Main.main(Main.java:24)

welche Punkte zu der Linie ich die Umsetzung der .getCell () - Methode, wenn die Zelle den Wert null. Ich habe code, der herausfinden soll, wenn die Zelle null ist, und dann etwas drucken, wenn das ist wahr, aber es scheint, als ob die Zelle leer ist, führt zu einem Fehler mit dem Programm. Dies geschieht nur in einigen Fällen jedoch, und ich habe herausgefunden, dass wenn ich ein Blatt und eine for-Schleife erstellen Sie eine neue Zelle in jeder Zeile, die ich Lesen kann eine leere Zelle, und bestimmen Sie, es ist leer. Wenn ich dann allerdings geben Sie einen Wert in eine beliebige Zelle in diesem Blatt, und dann versuchen, Sie zu Lesen eine andere null-Zelle, bekomme ich die Fehlermeldung wieder. Ich verstehe nicht, warum, ich bekomme diese Fehlermeldung nur wenn ich versuche zu Lesen, null-Zellen, aber muss ich eine Schleife in mein Programm. Hier ist ein Ausschnitt von meinem code und was den Fehler verursacht.

public void getWorkbook(String fileName)
{
    try 
    {
        existingFile = new FileInputStream(new File(fileName));
        workbook = new XSSFWorkbook(existingFile);
        Sheet newSheet = workbook.getSheet("Test3");
        //createSheet("Test3", workbook);

        Cell newCell = newSheet.getRow(1).getCell(1);
        if(newCell == null)
        {
            System.out.println("Null");
        }
        else if(newCell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC)
        {
            System.out.println("Number");
        }
        //System.out.println(newCell.getStringCellValue());
    } 
    catch (FileNotFoundException e) //Couldn't find file
    {
        e.printStackTrace();
    } 
    catch (IOException e) //Couldn't create workbook
    {
        e.printStackTrace();
    }
}

Nur klar zu sein, die Zelle B2, die im code erwähnten, ist leer. Aber A1 ist nicht, aber wenn ich lese A1 druckt das system "Nummer" wie es sein soll.

  • Ich vermute, dass die ganze Zeile 2 ist leer. Also diese Zeile wird nicht gespeichert werden, in die Excel-Datei und newSheet.getRow(1) zurück NULL. Sie haben, dies zu überprüfen. Versuchen Sie, die erste Reihe, dann überprüfen, ob es nicht NULL - und nur wenn nicht, versuchen Sie, die Zelle.
  • Dies funktionierte perfekt. Ich danke Ihnen so sehr für Ihre Hilfe!
InformationsquelleAutor Zman147 | 2015-07-02
Schreibe einen Kommentar