Hallo Ihr da draussen!
Ich wollte mich nun einmal in die Java-Welt begeben und mir so einmal ein Programm programmieren, welches ich hin und wieder mal gebrauchen könnte. Das hätte also nicht nur den Vorteil, dass ich auch mal mit Java etwas realisieren kann, sondern auch gleich einen praktischen Nutzen. Es geht also um folgendes:
Ich habe mehrere Excel-Tabellen, in denen Daten stehen. Diese sehen z.B. ungefähr so aus:
Tabelle1
Name | Email | Punkte | ... (weitere Spalten)
Bert | bert@yahoo.de | 10 | ...
Ernie | ernie@gmx.de | 9 | ...
Oscar | o@tonne.de | 11 | ...
Tabelle2
Email | Name | Punkte | ... (weitere Spalten)
Ernie | ernie@gmx.de | 9 | ...
Bert | bert@yahoo.de | 20 | ...
Kermit | kermit@frosch.de | 11 | ...
Die Tabellen können also ungefähr so aussehen.
Das auslesen in Java stellt auch garkein Problem dar. Habe mir jetzt JExcel ein wenig angeschaut, sodass ich damit klar komme.
Ich möchte diese unterschiedlichen Datensätze nun filtern, d.h., ich gebe eine Spalte an, die mir sozusagen als Schlüsselspalte dienen soll, was z.B. der Name wäre. Jetzt können folgende Fälle auftreten:
Wenn der Name nur in einer Tabelle existiert, sollen die Daten nun quasi in eine Liste eingetragen werden "Existiert nur in Tabelle1", "Existiert nur in Tabelle2".
Gibt es den Namen in beiden Tabellen, so sollen die Datensätze in eine weitere Liste eingetragen werden. Und genau diese Datensätze möchte ich nun weiter untersuchen, d.h. sagen "Untersuche, ob der Wert von Spalte 3 (Punkte) aus Tabelle1 mit dem von SPalte 3 aus Tabelle 2 übereinstimmt.
Die Frage die sich mir nun stellt ist, wie ich das ganze angehen soll. Ich habe mir zunächst überlegt, eine einzelne Klasse "Datensatz" anzulegen, die ein Array aus Strings beinhaltet, wo jedes Arrayelement dann der spalte einer Zeile entsprechen würde. Dann würde ich eine Collection, z.B. eine ArrayList aus diesen Datensätzen erstellen. Somit wäre dann der Inhalt aus einer Exceltabelle in einer ArrayList von Datensätzen. Das kann man dann natürlich für alle Dateien so machen, sodass jede Tabelle einer ArrayList<Datensatz> entsprechen würde.
Ist dieses Vorgehen wohl erstmal schlau? Ich möchte die einzelnen Datensätze dann natürlich vergleichen mit denen aus anderen ArrayListen. Ich müsste halt erstmal einen Ansatz finden, wie ich an dieses Problem rangehen könnte.
Ich hoffe, ich habe mich ansatzweise klar ausgedrückt.
Ich wollte mich nun einmal in die Java-Welt begeben und mir so einmal ein Programm programmieren, welches ich hin und wieder mal gebrauchen könnte. Das hätte also nicht nur den Vorteil, dass ich auch mal mit Java etwas realisieren kann, sondern auch gleich einen praktischen Nutzen. Es geht also um folgendes:
Ich habe mehrere Excel-Tabellen, in denen Daten stehen. Diese sehen z.B. ungefähr so aus:
Tabelle1
Name | Email | Punkte | ... (weitere Spalten)
Bert | bert@yahoo.de | 10 | ...
Ernie | ernie@gmx.de | 9 | ...
Oscar | o@tonne.de | 11 | ...
Tabelle2
Email | Name | Punkte | ... (weitere Spalten)
Ernie | ernie@gmx.de | 9 | ...
Bert | bert@yahoo.de | 20 | ...
Kermit | kermit@frosch.de | 11 | ...
Die Tabellen können also ungefähr so aussehen.
Das auslesen in Java stellt auch garkein Problem dar. Habe mir jetzt JExcel ein wenig angeschaut, sodass ich damit klar komme.
Ich möchte diese unterschiedlichen Datensätze nun filtern, d.h., ich gebe eine Spalte an, die mir sozusagen als Schlüsselspalte dienen soll, was z.B. der Name wäre. Jetzt können folgende Fälle auftreten:
- Der Name existiert in beiden Tabellen
- Der Name existiert in Tabelle1
- Der Name existiert in Tabelle 2
Wenn der Name nur in einer Tabelle existiert, sollen die Daten nun quasi in eine Liste eingetragen werden "Existiert nur in Tabelle1", "Existiert nur in Tabelle2".
Gibt es den Namen in beiden Tabellen, so sollen die Datensätze in eine weitere Liste eingetragen werden. Und genau diese Datensätze möchte ich nun weiter untersuchen, d.h. sagen "Untersuche, ob der Wert von Spalte 3 (Punkte) aus Tabelle1 mit dem von SPalte 3 aus Tabelle 2 übereinstimmt.
Die Frage die sich mir nun stellt ist, wie ich das ganze angehen soll. Ich habe mir zunächst überlegt, eine einzelne Klasse "Datensatz" anzulegen, die ein Array aus Strings beinhaltet, wo jedes Arrayelement dann der spalte einer Zeile entsprechen würde. Dann würde ich eine Collection, z.B. eine ArrayList aus diesen Datensätzen erstellen. Somit wäre dann der Inhalt aus einer Exceltabelle in einer ArrayList von Datensätzen. Das kann man dann natürlich für alle Dateien so machen, sodass jede Tabelle einer ArrayList<Datensatz> entsprechen würde.
Ist dieses Vorgehen wohl erstmal schlau? Ich möchte die einzelnen Datensätze dann natürlich vergleichen mit denen aus anderen ArrayListen. Ich müsste halt erstmal einen Ansatz finden, wie ich an dieses Problem rangehen könnte.
Ich hoffe, ich habe mich ansatzweise klar ausgedrückt.