JExcel- Zugriff auf leere Zellen kommt eine Fehlermeldung

Status
Nicht offen für weitere Antworten.

Enfa

Mitglied
Hallo,

Ich greife per JExcel auf eine Excel-Tabelle. Einzelne Zellen kann ich durch eingabe im Methode sheet.getCell(spalte, row) zugreifen. Aber wenn ich auf eine Leere Zelle zugreifen möchte, dann kommt eine Fehlermeldung.

Um das Problem zu lösen, möchte ich eine if-Bedingung stellen:
Wenn der bestimmte Zelle nicht leer ist, dann speichere diesen Wert als String.
Wenn in der Zelle nichts steht, dann spring raus.

Habe einige Versuche gemacht:

if(aSheet.getCell(0,i) != null) --> dann speichere den inhalt.

oder:

if( aSheet.getCell(0,i).getContents() != null) oder:
if( ! aSheet.getCell(0,i).getContents().equals("")).

Funktioniert nicht.

Wie kann ich die Bedingung realisieren? Oder habt Ihr eine andere Idee.

Vielen Dank im Voraus.

Tschüss
 
Ich kenn mich mit der API von JExcel leider nicht so genau aus, aber was unabhängig davon auf jeden Fall gehen sollte wäre ein try catch Block. Sollte aber nur die allerletzt Lösung sein.
 
So hab mal in der API gelesen, wenn ich das richtig verstehe musst du zuerst mit getCellFormat() überprüfen ob die Zelle leer ist. Die getContent() versucht scheinbar ohne jede Rücksicht auf Verluste den Inhalt zu holen (damit wären wir dann wieder bei try catch).

getContents

public java.lang.String getContents()

Quick and dirty function to return the contents of this cell as a string. For more complex manipulation of the contents, it is necessary to cast this interface to correct subinterface

Returns:
the contents of this cell as a string


getCellFormat

public CellFormat getCellFormat()

Gets the cell format which applies to this cell Note that for cell with a cell type of EMPTY, which has no formatting information, this method will return null. Some empty cells (eg. on template spreadsheets) may have a cell type of EMPTY, but will actually contain formatting information

Returns:
the cell format applied to this cell, or NULL if this is an empty cell
 
Hi Wiesel,

danke für deine Antwort.

Ich kriege folgende Fehlermeldung:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 21.

Ich gehe mal stark davon aus, dass in der bestimmten Sheet von Excel die Zeilen nicht bis zu 21 geht. Deswegen komt eine Fehlermeldung.

Ich werde jetzt folgendes ausprobieren:

Wenn ich auf eine Shhet zugreife, dann bekomme ich zuerst mit der Methode getRows die Zeilen. Bis zu der Zeile kann ich dann den Inhalt zugreifen.

Mal gucken, was rauskommt.

Tschüss
 
Diese Fehlermeldung hat aber wahrscheinlich nichts mit den leeren Zeilen zu tun, da Excel standardmässig keine Begrenzung an Zeilen hat. (Im übertragenen Sinn)
Kannst du mal den Code posten? Das könnte uns weiterhelfen.
 
Hallo,

Also bevor ich den Inhalt zugreife, frage ich zuerst nach, wieviel Zeilen existiert denn eigentlich. Mit der Methode: sheet.getRows(). Dann bastele ich eine For schleife und wiederhole solange bis zu der letzten zeile.

Dann kommt kein Fehlermeldung. Klappt bis jetzt.

Tschüss
 
das funzt nicht immer, zum beispiel dann, wenn zb farben in einer zelle sind...dann nimmt er dies als 'volle' zelle.

gruesse
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben