Auslesen von Strings aus einer xls-Datei

Status
Nicht offen für weitere Antworten.
A

Andy A.

Gast
Ich arbeite momentan an einem Programm, das Bestellungen aus einer xls-Datei auslesen soll. Dazu wird die vom Benutzer eingegebene Bestellnummer mit der Bestellnummer aus der Datei verglichen. Das Auslesen klappt soweit, allerdings gibt es Bestellungen mit der selben Bestellnummer und die equals()-Methode nimmt nur den ersten Datensatz aus der Tabelle mit der eingegebenen Bestellnummer. Kann mir vielleicht jemand sagen, wie man alle Datensätze mit der selben Bestellnummer auslesen kann?

Gruß Andy
 
S

SlaterB

Gast
> und die equals()-Methode nimmt [..]

redest du von irgendeinem Framework, zu dem man etwas wissen soll
oder hast du individuellen Code mit BufferedReader usw?
wie soll man den dann korrigieren, ohne ihn zu kennen?
 
G

Gast

Gast
if (eingabeauftr.equals(currentStateCell.toString())) {
System.out.print(currentRow.getRowNum() + 1 + " ");
for (int i = 0; i < currentRow.getLastCellNum(); i++){
System.out.print(currentRow.getCell((short) i).toString() + " ");
}
}

so, sieht der Code im Moment aus. Das Problem ist halt, dass die equals()-Methode nur den ersten Eintrag mit der Bestellnummer nimmt und dir anderen alle nicht beachtet.
 
S

SlaterB

Gast
aber warum?
für alles muss es doch im Code einen Grund geben,

dein Code zeigt, wie mit currentStateCell umgegangen wird,

es ist aber nicht zu sehen welche Datensätze derart überprüft werden,
ob alle oder einige, ob nach erfolgreichen Fund abgebrochen wird oder nicht usw.

wenn dieser Code für alle Datensätze durchlaufen wird, dann wird equals auch oft genug true liefern
oder die Strings stimmen doch nicht überein, was du mit System.out.printlns oder einem Debugger genauer untersuchen musst
 
A

Andy A.

Gast
Es funktioniert alles soweit gut, er liest auch den Datensatz mit der richtigen Bestellnummer aus, aber jedoch nur den ersten. So ist die equals()-Methode programmiert. Sie kann nur den ersten Datensatz auslesen, die anderen alle ignoriert sie. Deshalb suche ich jetzt nen Weg, wie man das anders machen kann, sodass alle Datensätze mit der eingegeben Bestellnummer ausgelesen werden können. Ich hoffe, es ist klarer geworden, was ich wirklich meine. :)

Gruß Andy
 
S

SlaterB

Gast
das equals kümmert sich nur darum, ob zwei Strings gleich sind,
es kann nicht darüber entscheiden, welche oder wieviele Datensätze gelesen werden,

es ist die Frage, woher du currentStateCell und currentRow herbekommst,
falls irgendwo etwas per BufferedReader eingelesen wird, so muss an diese Stelle eine Schleife,
bzw. klingt ja nach Apache POI für Excel-Dateien, aber auch da gibts Programmsteuerung per Schleifen

mehr Code..
 

FArt

Top Contributor
... dann musst du halt über alles Einträge iterieren und jedes mal mit equals() prüfen, ob dich der Eintrag interessiert...
 
A

Andy A.

Gast
public String[] getAuftrag(String eingabeauftr, String filename) {

try {

fs = new POIFSFileSystem(new FileInputStream(filename));
hssfworkbook = new HSSFWorkbook(fs);

sheet = hssfworkbook.getSheetAt(0);

currentStateCell = null;
currentRow = sheet.getRow(0);

String[] feld = new String[currentRow.getLastCellNum()];

while (rowCount < sheet.getLastRowNum() + 1) {

try {

currentRow = sheet.getRow(rowCount++);
currentStateCell = currentRow.getCell(0);

if (eingabeauftr
.equals(currentStateCell.toString()))) {
for (int i = 0; i < currentRow.getLastCellNum(); i++) {

feld = currentRow.getCell(i)
.toString();
}
tab = 0;
feld1 = feld;
break;
}
if (currentRow.getRowNum() == sheet
.getLastRowNum()) {

sheet = hssfworkbook.getSheetAt(tab++);

if (sheet.getLastRowNum() == 0) {
JOptionPane.showMessageDialog(null,
"Die Suche ergab keinen Treffer!");
tab = 0;

break;
}

rowCount = 0;

}

} catch (java.lang.NullPointerException f) {
JOptionPane.showMessageDialog(null,
"Die Suche ergab keinen Treffer!");
break;
} catch (java.lang.NumberFormatException g) {
System.out.println(g.getMessage());
}
}
} catch (java.io.FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "Datei wurde nicht gefunden!");
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Datei wurde nicht gefunden!");
}
return feld1;
}


So, hier ist der Code, hoffe, ihr könnt mir helfen :).
 
S

SlaterB

Gast
eine Schleife hast du anscheinend schon:
> while (rowCount < sheet.getLastRowNum() + 1) {

jetzt gib doch mal VOR dem
if (eingabeauftr
.equals(currentStateCell.toString()))) {

currentStateCell pro Zeile aus, schau dir die Werte an, ob alle drankommen, die du haben möchtest
 
S

SlaterB

Gast
Befehle wie
> break;
oder
> rowCount = 0;
sind natürlich auch nicht förderlich für eine korrekte normale Abarbeitung der Schleife

try/ catch NullPointerException ist ganz schlimm
 
A

Andy A.

Gast
Also, ich habs gemacht (Ich hoffe, ich habe dich richtig verstanden) und sobald er einen Treffer beim Vergleichen landet, vergleicht er die anderen Datensätze nicht mehr. Er bricht einfach an der Stelle ab.
 
S

SlaterB

Gast
siehe mein letztes Post,
wenn du nicht weißt was dein Code macht, dann ist das natürlich schlecht,
 
A

Andy A.

Gast
Naja, also "rowCount = 0" ist schon notwendig, weil er mehrere Tabellen in der Datei durchlaufen muss. Dies muss er natürlich von der ersten Zeile aus machen.
 
S

SlaterB

Gast
auf jeden Fall steht am Ende von
if (eingabeauftr.equals(currentStateCell.toString()))) {
eindeutig ein break;
und daher ist die Schleife zu Ende

das ist doch leicht einzusehen?
hättest du evtl. ganz oben im dritten Posting drin lassen sollen,
dann wäre das schnell klar gewesen ;)
 
A

Andy A.

Gast
Ohne "break" befindet sich das Prog. in einer Endlos-Schleife und die
"try/ catch NullPointerException" ist dafür da, falls sich in der Datei eine leere Zeile befindet.
 
S

SlaterB

Gast
> Ohne "break" befindet sich das Prog. in einer Endlos-Schleife

ich behaupte nein, denn rowCount++ wird immer um 1 erhöht,
falls das nicht gerade durch eine geniale Exception-Lösung übersprungen wird oder, was bei dir wahrscheinlich passiert, ständig wieder auf 0 gesetzt wird..

und while (rowCount < sheet.getLastRowNum() + 1) {
liefert dann false

> try/ catch NullPointerException" ist dafür da, falls sich in der Datei eine leere Zeile befindet.

wie wärs mit if (x == null)?


egal, es geht ja jetzt um das Lesen weiterer Datensätze,
und dazu ist mein Tipp, dass dieses break weg muss und etwaige Probleme anders gelöst werden müssen,
kannst du so annehmen oder auch ignorieren, wie du willst
 
A

Andy A.

Gast
Ja da hast du recht. Ich kann "break" und "rowCount = 0" auch weglassen, das löst das Problem aber nicht, das ist eine zusätzliche Barriere, denn dann liest er die anderen Tabellen der Datei nicht aus. Aber über andere Lösung nachzudenken, ist natürlich ne Möglichkeit. Trotzdem danke!

Gruß Andy
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Strings zwischen 2 Zeichen auslesen Allgemeine Java-Themen 7
G Strings zerlegen und substrings auslesen Allgemeine Java-Themen 2
H strings in datei verschlüsseln , auslesen mit klartext aber! Allgemeine Java-Themen 2
P Schnelles Auslesen von Strings für Syntaxhighlighting? Allgemeine Java-Themen 2
D Zahlen innerhalb eines Strings auslesen Allgemeine Java-Themen 3
L Input/Output Email mit großer Pdf Anhang auslesen? Allgemeine Java-Themen 5
Ernesto95 HTTP Mit JavaScript erzeugte dynamische Webseite auslesen und nach einem Schlüsselwort durchsuchen Allgemeine Java-Themen 6
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
T INI - Einträge auslesen Allgemeine Java-Themen 6
H Auslesen eines (LDAP-)Attributs in Active Directory Allgemeine Java-Themen 2
O PDF auslesen und verändern, was ist besser iText oder PDFBox ? Allgemeine Java-Themen 9
Robertop Status von Caps- und NumLock auslesen Allgemeine Java-Themen 1
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
G Mac Package auslesen Allgemeine Java-Themen 17
W Versionsnummer auslesen - Regex ist zickig Allgemeine Java-Themen 2
F Junit Test + Cucumber - JSON auslesen und in einem weiteren Schritt nutzen Allgemeine Java-Themen 0
M verschiedene Dokumente auslesen Allgemeine Java-Themen 1
Gaudimagspam CSV-Datei auslesen in Java Allgemeine Java-Themen 7
L Dateien richtig auslesen Allgemeine Java-Themen 6
F WireGuard Status auslesen Allgemeine Java-Themen 3
B .txt Datei erstellen und auslesen bzw. schreiben Allgemeine Java-Themen 6
I DOM-Parser - Element im Element an bestimmten Stellen auslesen Allgemeine Java-Themen 1
N Txt Datei auslesen. Allgemeine Java-Themen 5
O xlsx Datei auslesen mit POI Apache liest keine LEERZELLEN Allgemeine Java-Themen 6
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
J Information von getSource() Objekt auslesen Allgemeine Java-Themen 1
V EMail, Attachments auslesen von einer Email Allgemeine Java-Themen 0
K Aus String zwei Jahreszahlen auslesen Allgemeine Java-Themen 18
E CSV mit Text und Binärdaten auslesen Allgemeine Java-Themen 7
x46 Webseite in Java auslesen Allgemeine Java-Themen 2
M Html Seite auslesen Allgemeine Java-Themen 16
S Hilfe bei dem Auslesen einer YAML Datei Allgemeine Java-Themen 8
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
B Cookie auslesen Allgemeine Java-Themen 3
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
J Teil einer URL auslesen Allgemeine Java-Themen 13
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
C Atfx mit Hilfe von OpenAtfx auslesen Allgemeine Java-Themen 1
C Position von Pixeln in Bilder auslesen Allgemeine Java-Themen 2
M aktive WLAN Teilnehmer auslesen? Allgemeine Java-Themen 6
X JSONObject auslesen und in HashMap hinterlegen Allgemeine Java-Themen 16
S Kann man mit Java auf einem lokalen PC/Mac Benutzergruppen auslesen und Rechte ändern? Allgemeine Java-Themen 11
C Webseite auslesen Allgemeine Java-Themen 3
D Best Practice Gesamten Bildschirminhalt auslesen und Email schicken sobald kein Pixel sich ändert Allgemeine Java-Themen 11
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
J Bestimmte Zeile aus Textdatei auslesen Allgemeine Java-Themen 18
G Aus JTextField Zahlen auslesen und random generieren Allgemeine Java-Themen 10
M Tastatureingabe von Sondertasten auslesen Allgemeine Java-Themen 6
C Auslesen auslösen über Button-Click Allgemeine Java-Themen 8
M xlsx File auslesen Exception occured Allgemeine Java-Themen 13
U OOP Warum kann ich aus meiner Methode keinen String auslesen Allgemeine Java-Themen 4
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
4a61766120617274697374 PDF iText Wort Koordinaten auslesen Allgemeine Java-Themen 1
KeVoZ_ Bestimmte Zeile aus Console finden & auslesen Allgemeine Java-Themen 2
T Url aus txt Datei auslesen und öffnen? Allgemeine Java-Themen 4
N Werte aus Hashmap auslesen und übertragen Allgemeine Java-Themen 8
KeVoZ_ Properties mit String auslesen Allgemeine Java-Themen 11
I HTML einer Website auslesen liefert nur head Allgemeine Java-Themen 6
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
M Parameter auslesen im Servlet Allgemeine Java-Themen 0
M Input/Output USB Geräteinstanzkennung auslesen Allgemeine Java-Themen 3
W 2D-Grafik Erstellungsdatum JPG direkt aus Header (EXIF) auslesen. Allgemeine Java-Themen 5
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
T Datei Byteweise auslesen Allgemeine Java-Themen 1
T Datentypen MNIST Datenbank auslesen (.gz) Allgemeine Java-Themen 0
T Ini Datei auslesen Allgemeine Java-Themen 3
J Temperatur aus bytes auslesen. Allgemeine Java-Themen 13
I JSoup Class auslesen Allgemeine Java-Themen 1
Bluedaishi Textdateien auslesen Allgemeine Java-Themen 12
T ELM327 OBD2 auslesen Allgemeine Java-Themen 0
D Double aus String auslesen Allgemeine Java-Themen 8
Z Zahlen aus Bild auslesen Allgemeine Java-Themen 1
A interaktives PDF auslesen/auswerten? Allgemeine Java-Themen 0
G Daten aus Website auslesen Allgemeine Java-Themen 7
S CSV Eintrag der nächsten Zeile auslesen funktioniert nicht Allgemeine Java-Themen 8
I Java FX JsonObjekt Children auslesen Allgemeine Java-Themen 23
M RXTX Details auslesen Allgemeine Java-Themen 6
N Input/Output Website Text auslesen und bestimmte Zeilen wiedergeben Allgemeine Java-Themen 4
X HTTP Auslesen der Ergebnisse von einer Webseite und in eine Liste packen Allgemeine Java-Themen 1
J Wav-Datei aus .jar auslesen Allgemeine Java-Themen 7
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
D CSV Datei auslesen Allgemeine Java-Themen 23
N Werte aus Arrays auslesen funktioniert nicht Allgemeine Java-Themen 5
J Java JSON-Datei aus .Zip auslesen und Download mit Progress Bar Allgemeine Java-Themen 20
V Tooltips mit Java auslesen Allgemeine Java-Themen 1
I Inhalt einer Website auslesen Allgemeine Java-Themen 6
A JTable - CellRange auslesen Allgemeine Java-Themen 2
V 2d-Barcodes mit zxing auslesen Allgemeine Java-Themen 2
A Auslesen einer Datei sowie ausgeben als Liste in App Allgemeine Java-Themen 5
K Website in Programm einbinden und auslesen Allgemeine Java-Themen 2
M Image auslesen Allgemeine Java-Themen 2
S Zahlen aus (String mit zahlen) immer wieder neu auslesen Allgemeine Java-Themen 5
T datei auslesen ind der richtigen reihenfolge Allgemeine Java-Themen 2
A Probleme beim auslesen von Quelltext (HTML) Allgemeine Java-Themen 5
I Methoden Quellcode auslesen (Refelction o.ä.) Allgemeine Java-Themen 5
B Compiler-Fehler NullPointerException beim Auslesen von .lang-Datei Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben