Abfragen eines Excel-Feldes auf null

Basti4231

Bekanntes Mitglied
Hey Leute,

ich lese ein Excel-file mit Hilfe von POI ein.
Funktioniert alles fantastisch. Jetzt gibt es eine Situation, bei der ein Feld keinen Wert hat. Das führt bei einer bestimmten Zuweisung zu einer NullPointerException. Das soll vermieden werden könnnen. Ich habe aber bis jetzt keine Methode gefunden mit der man Zellen auf null prüfen kann. Primitive Datentypen kann man ja nur auf 0 usw. prüfen, aber nicht auf null. Im Falle von null müsste nämlich die Zelle auf 0 gesetzt werden, also dort reingeschrieben werden und mit diesem Wert soll dann weitergearbeitet werden.

Als Anregung hatte ich schon solche Sachen wie, ich hole mir den Wert mit getNumericCellValue, aber da komm ich auch nicht an null ran, der klinkt sich dann per Exception aus.

Ich hoffe, da kann mir jemand helfen.

Vielen Dank :)
 
S

SlaterB

Gast
nochmal ganz langsam die gesamte Situation

erst fragst du die Zelle ab,
> HSSFCell x = ..;
die Zelle ist nicht null?

wenn du an dieser besonderen Zelle aber getNumericCellValue() aufrufst, gibts im Inneren eine Exception,
du bist ganz sicher dass es nicht daran liegt dass x selber null ist, was du prüfen könntest?

CellType usw. schon angeschaut?

> Primitive Datentypen kann man ja nur auf 0 usw. prüfen, aber nicht auf null.

in welcher Situation hast du es denn mit einem primitiven Datentyp zu tun?
 

Basti4231

Bekanntes Mitglied
[Java]
excelMinors = Double.parseDouble(row.getCell(2)
.toString());
[/code]

Das ist die eine Zeile, bei der die NullPointer kommt, da in diesem Fall in dieser Zelle kein Wert in der ExcelTabelle eingetragen ist. Die ExcelTabelle hat 5 Spalten und ich brauche immer die Werte aus der 2. und 3. Spalte.
Wenn jetz irgendwo kein Wert drinsteht, brauche ich eine Sicherheit, dass ich dort 0 reinschreibe, um die Exception zu verhindern.

In Spalte 2 und 3 stehen jeweils nur ganzzahlige Werte drin.
 

Basti4231

Bekanntes Mitglied
Ah herrlich mir ist grade die Lösung gekommen.
Ich frage einfach so:

Java:
if (row.getCell(2).toString() != null)
{
//hier dann weiter
}
 

hansmueller

Bekanntes Mitglied
Hallo,

probier doch mal so was in der Richtung:

Java:
if(row.getCell(2) != null)
{
   excelMinors = Double.parseDouble(row.getCell(2).toString());
}
else
{
   excelMinors = 0;
}
(ist jetzt nur mal ganz schnell geschrieben)

MfG
hansmueller
 

Strahlungsleck

Aktives Mitglied
kann ich auch mit folgenden schauen ob die Zelle Leer/Blank ist ?

Celltype 3 = Blank

Java:
if(row.getCell(reihe).getCellType() != 3]{
System.out.println("Zelle ist leer");
}

***EDIT***
Hier wird geprüft ob die Zelle nicht Leer ist, und nicht ob sie Leer ist !
 
Zuletzt bearbeitet:

Basti4231

Bekanntes Mitglied
Es könnte dann doch auch sein, dass er ein anderer Typ ist, was ja nicht unbedingt heißt, dass die Zelle leer ist. Also ich vermute es nur, da es logisch klingt. Ich weiß nämlich nicht genau was hinter den einzelnen Zahlen steckt (bzw. welcher Typ weiß ich nicht).

gruß basti
 

Basti4231

Bekanntes Mitglied
Ok danke. Es ist also klar, dass wenn es nicht 3 ist (also nicht Blank), dass es immer noch eins der anderen Typen sein kann und nach meiner Logik dann die Zelle nicht unbedingt leer sein muss.

gruß basti
 

Strahlungsleck

Aktives Mitglied
hab gerade mein eigenen Fehler bemerkt, dass kommt wenn man nur ein teil des codes postet
So wie es da von mir steht, wird geprüft ob die nicht Leer(Blank) ist.

Richtig müsste es heißen:
Java:
if(row.getCell(reihe).getCellType() == 3){
System.out.println("Zelle ist leer");
}
 

Basti4231

Bekanntes Mitglied
Ja das ist wohl wahr. Jetzt, wenn es zutrifft, müsste das Feld leer sein, bzw. mindestens ein Leerzeichen enthalten. Das macht aber einen Unterschied zwischen leer und nicht leer, denn ein Leerzeichen ist auch ein Zeichen, somit ist die Zelle nicht wirklich leer.
 

Strahlungsleck

Aktives Mitglied
Ja das ist wohl wahr. Jetzt, wenn es zutrifft, müsste das Feld leer sein, bzw. mindestens ein Leerzeichen enthalten. Das macht aber einen Unterschied zwischen leer und nicht leer, denn ein Leerzeichen ist auch ein Zeichen, somit ist die Zelle nicht wirklich leer.

Hab es mal eben kurz getestet
Wenn die Zelle komplet, Leer ist, kommt das syso bei
Java:
if(row.getCell(reihe).getCellType() == 3){
System.out.println("Zelle ist leer");
}
Ist aber ein Leerzeichen drinne, ist die Zelle nicht Leer und somit !=Blank,
d.h. Es geht damit zu Prüfen ist aber risikoreich. Ich würde meine Variante
nicht empfehlen!

Ich würde das von Slater nehmen *Schleichwerbung mach*
Java:
if (row.getCell(2) != null)
 

Basti4231

Bekanntes Mitglied
Jo so würd ich es auch machen. Also du musst immer schön aufpassen, Leerzeichen heißt nicht, die Zelle ist leer, aber das weißt du jetzt auch^^

Also danke für die Beratung, auch wenn ich selber auf die Lösung dann gekommen bin (außer mit .toString()), aber es ist irgendwie sehr oft so, wenn man etwas dann Anderen zu erklären versucht, dass man selber schon auf die Lösung kommt, da man sich die Logik quasi nochmal reinzieht und dann auch auf neue Ideen kommt.

lg basti:D
 
S

SlaterB

Gast
wenn eine Zelle null ist, dann kann man doch gar nicht getCellType() abfragen, NullPointerException..

zu == null gibts keinen Alternativ-Test
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
R Datentypen Datentyp eines Werts in einer Textdateizeile abfragen und ändern Java Basics - Anfänger-Themen 4
B Abfragen eines Preises.. Java Basics - Anfänger-Themen 20
A Existenz eines Files abfragen Java Basics - Anfänger-Themen 13
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
ven000m Bitcoin Blockhöhe abfragen Java Basics - Anfänger-Themen 12
S If abfragen (+, - , /, *) Java Basics - Anfänger-Themen 13
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
Phash Websocket abfragen Java Basics - Anfänger-Themen 1
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
E schneller von der Datenbank abfragen Java Basics - Anfänger-Themen 15
M Checkbox abfragen und Radiobutton Group zurücksetzen Java Basics - Anfänger-Themen 1
L Datenpaare abfragen Java Basics - Anfänger-Themen 11
O ADT Graph nach größe Abfragen Java Basics - Anfänger-Themen 42
B Serial port abfragen Java Basics - Anfänger-Themen 18
F Ordner auf alle Unterdatein abfragen Java Basics - Anfänger-Themen 3
S boolean Wert von mehreren int Möglichkeiten abfragen ? Java Basics - Anfänger-Themen 4
H Variablen Methode zum Abfragen von Variablen aus Subklassen Java Basics - Anfänger-Themen 9
T Erste Schritte Textfeld abfragen ob etwas enthalten ist. Java Basics - Anfänger-Themen 17
S Asynchrone Socket-Abfragen Java Basics - Anfänger-Themen 5
S mehrfache if-Abfragen - beste Lösung Java Basics - Anfänger-Themen 1
E Abfragen des SimpleDateFormats Java Basics - Anfänger-Themen 1
L int array abfragen Java Basics - Anfänger-Themen 16
T Variablen Var aus While-Schleife abfragen -.-' Java Basics - Anfänger-Themen 9
Y Mehrdimensionales Array diagonal abfragen. Java Basics - Anfänger-Themen 5
S Datenbank auf Knopfdruck abfragen Java Basics - Anfänger-Themen 8
T if abfragen verkürzen Java Basics - Anfänger-Themen 5
M Wo Hilfsvariablen abfragen? Java Basics - Anfänger-Themen 1
M Farben/Color Abfragen von Farben innerhalb einer Methode Java Basics - Anfänger-Themen 9
M "Exceptions abfragen" Java Basics - Anfänger-Themen 6
M Frage nach BestPractice in if-Abfragen Java Basics - Anfänger-Themen 1
P Anlegen und Abfragen von Array List Java Basics - Anfänger-Themen 4
R IF Abfragen Java Basics - Anfänger-Themen 8
R If Abfragen Problem! Java Basics - Anfänger-Themen 4
I Button abfragen ob er geklickt wurde Java Basics - Anfänger-Themen 4
C If Abfragen Problem Java Basics - Anfänger-Themen 46
I Drei booleans abfragen Java Basics - Anfänger-Themen 2
R Input/Output Java String abfragen Java Basics - Anfänger-Themen 3
A Vokabel abfragen Java Basics - Anfänger-Themen 3
N Best Practice Stilistische Anwendung von if/else-Abfragen Java Basics - Anfänger-Themen 7
E Checkboxen abfragen Java Basics - Anfänger-Themen 10
H if abfragen Java Basics - Anfänger-Themen 38
C TreeMap Abfragen Problem Java Basics - Anfänger-Themen 7
S Abfragen wenn das ende einer Tabelle erreicht ist Java Basics - Anfänger-Themen 8
B mehrere Abfragen zusammenfügen Java Basics - Anfänger-Themen 3
H durch Schleife 50 Variablen abfragen Java Basics - Anfänger-Themen 8
B If abfragen! Java Basics - Anfänger-Themen 9
J checkbox status abfragen und drucken Java Basics - Anfänger-Themen 13
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
F Bedingungen mit Abfragen verknüpfen Java Basics - Anfänger-Themen 7
P länge von array abfragen? Java Basics - Anfänger-Themen 2
Gossi Input/Output Datei Lesen, inhalt abfragen, speichern Java Basics - Anfänger-Themen 5
T jNumberField auf null abfragen Java Basics - Anfänger-Themen 5
Z Erste Schritte LinkedList Werte abfragen und vergleichen Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
H Checkboxstatus abfragen Java Basics - Anfänger-Themen 10
S unzulässigen Wert abfragen - aber wo Java Basics - Anfänger-Themen 3
eLogic Aktive Internetverbindung abfragen Java Basics - Anfänger-Themen 21
D Touchpad abfragen?! Java Basics - Anfänger-Themen 9
D Abfragen ob Excel-Dateien Makros enthalten? Java Basics - Anfänger-Themen 4
B GridLayout - elemente mit Maus abfragen Java Basics - Anfänger-Themen 3
B Daten in Instanz einer Klasse ändern / abfragen Java Basics - Anfänger-Themen 12
M Datentypen String mit Trennzeichen abfragen Java Basics - Anfänger-Themen 7
D GUI Checkboxen in allen Klassen abfragen? Java Basics - Anfänger-Themen 5
B OOP String auf bestimmte Zeichen abfragen Java Basics - Anfänger-Themen 4
M Double.NaN abfragen Java Basics - Anfänger-Themen 6
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
H Objecttyp abfragen... Java Basics - Anfänger-Themen 11
N Zeilenanzahl einer TXT abfragen..? Java Basics - Anfänger-Themen 11
S Bremsen 3 IF-Abfragen ein Programm? Java Basics - Anfänger-Themen 7
T scanner bestimmtes format abfragen Java Basics - Anfänger-Themen 5
T JOptionPane mit .showInputDialog: Ergebnis abfragen? Java Basics - Anfänger-Themen 2
S Absatz aus Textdokument abfragen Java Basics - Anfänger-Themen 6
B gedrückte Tasten abfragen Java Basics - Anfänger-Themen 11
L "unschöne" if-Abfragen Java Basics - Anfänger-Themen 4
JFeel-x JComponent<-----Eigenschaften<-- Als Liste abfragen? Java Basics - Anfänger-Themen 8
P Pixelfarbe abfragen Java Basics - Anfänger-Themen 8
J einfache Tastendrücke in einem JFrame abfragen Java Basics - Anfänger-Themen 2
S if-Abfragen bringen mich zum VERZWEIFELN! Java Basics - Anfänger-Themen 12
B Aus JTable ImageIcon abfragen Java Basics - Anfänger-Themen 8
hdi Desktop-Auflösung abfragen -> setLocation() von Frame Java Basics - Anfänger-Themen 5
D jeditorpane checkbox abfragen? Java Basics - Anfänger-Themen 7
A Googel Lokal abfragen Java Basics - Anfänger-Themen 7
G in einem inputstream auf " " abfragen? Java Basics - Anfänger-Themen 3
T Rechner-Name abfragen Java Basics - Anfänger-Themen 6
N Event auf JTabbedPane abfragen ? Java Basics - Anfänger-Themen 8
M Maus position abfragen und setzen? Java Basics - Anfänger-Themen 1
L JTabel abfragen ob es eine erste Zeile gibt? Java Basics - Anfänger-Themen 2
G If Abfragen Java Basics - Anfänger-Themen 3
T Variablen Classübergreifen abfragen Java Basics - Anfänger-Themen 6
S Abfragen ob Label enabled ist . Java Basics - Anfänger-Themen 2
M Status von ext. Programm abfragen Java Basics - Anfänger-Themen 2
G [Applet] Mauskkoodinaten abfragen Java Basics - Anfänger-Themen 3
C String.split("") einzelne Positionen abfragen Java Basics - Anfänger-Themen 10
R Vector mit contains abfragen Java Basics - Anfänger-Themen 32
T String splitten und auf fehler abfragen Java Basics - Anfänger-Themen 3
V thread, variable abfragen Java Basics - Anfänger-Themen 14
F Abfragen aber wie ? Java Basics - Anfänger-Themen 7
G JDialog-Status im Frame abfragen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben