
63130
25.08.2008, aktualisiert am 26.08.2008
XLS Dateien in eine Datenbank importieren
Ja, ich schon wieder. Diesmal habe ich wieder ein Problem und bei Google habe ich keine Hilfe gefunden. Diesmal geht es um den Import von Daten in eine MySQL Datenbank.
Also mein Plan sieht wie folgt aus: Der User hat bestimmte Daten in einer Excel-Tabelle (*.XLS). Alle Spalten haben immer in allen Tabellen von allen nutzern die gleiche Überschrift. Nun soll der User auf eine Seite gehen, dort in einem Upload-Formular die Datei hochladen. Die Daten aus der Datei sollen nach dem upload in die MySQL Datenbank importiert werden.
Meine Frage ist erstmal grundsätzlich: Ist das überhaupt möglich?
Wenn nein in welchem Maße wäre es möglich also mit welchen Veränderungen am "plan" könnte man sowas ähnliches realisieren?
Und natürlich: Wie ist sowas möglich, welche Befehle muss ich mir anschauen und so.
Vielen Dank für eure Hilfe
Viele Grüße,
v3rtico
Also mein Plan sieht wie folgt aus: Der User hat bestimmte Daten in einer Excel-Tabelle (*.XLS). Alle Spalten haben immer in allen Tabellen von allen nutzern die gleiche Überschrift. Nun soll der User auf eine Seite gehen, dort in einem Upload-Formular die Datei hochladen. Die Daten aus der Datei sollen nach dem upload in die MySQL Datenbank importiert werden.
Meine Frage ist erstmal grundsätzlich: Ist das überhaupt möglich?
Wenn nein in welchem Maße wäre es möglich also mit welchen Veränderungen am "plan" könnte man sowas ähnliches realisieren?
Und natürlich: Wie ist sowas möglich, welche Befehle muss ich mir anschauen und so.
Vielen Dank für eure Hilfe
Viele Grüße,
v3rtico
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 95232
Url: https://administrator.de/forum/xls-dateien-in-eine-datenbank-importieren-95232.html
Ausgedruckt am: 07.04.2025 um 17:04 Uhr
9 Kommentare
Neuester Kommentar
Eine Lösung wäre ODBC und DAO, da es dafür kein Standart Makro gibt, müsstest du dir selbst eins machen.
Oder aber du schaust mal hier nach
http://www.office-loesung.de/ftopic238716_0_0_asc.php
Oder aber du schaust mal hier nach
http://www.office-loesung.de/ftopic238716_0_0_asc.php
Hallo,
gleich zu Anfang eine Warnung: ich habe das nicht getestet. Wenn du das versuchen willst, nutze um Himmels Willen nicht eine Produktivumgebung!
Du kannst die Excel-Tabelle als eine tab-getrennte Textdatei abspeichern.
Diese txt-Datei lädst du auf den Server hoch. Danach solltest du dich damit befassen: http://dev.mysql.com/doc/refman/5.1/de/loading-tables.html
Wie gesagt, ich habe es nicht getestet. Ich kann dir nicht mit Sicherheit sagen, ob bereits bestehende Datensätze dabei überschrieben werden.
Könnte aber mit dem Verfahren funktionieren.
gleich zu Anfang eine Warnung: ich habe das nicht getestet. Wenn du das versuchen willst, nutze um Himmels Willen nicht eine Produktivumgebung!
Du kannst die Excel-Tabelle als eine tab-getrennte Textdatei abspeichern.
Diese txt-Datei lädst du auf den Server hoch. Danach solltest du dich damit befassen: http://dev.mysql.com/doc/refman/5.1/de/loading-tables.html
Wie gesagt, ich habe es nicht getestet. Ich kann dir nicht mit Sicherheit sagen, ob bereits bestehende Datensätze dabei überschrieben werden.
Könnte aber mit dem Verfahren funktionieren.
Ja, das funktioniert.
Ich habe kurz eine dreispaltige Excel-Tabelle erstellt und sie im csv_format exportiert. Allerdings hat Excel den Semikolon als Spaltentrennzeichen verwendet.
Im MySQL Monitor hab ich dann folgende Befehl abgesetzt:
Habe den Befehl mehrere Male wiederholt, bestehende Datensätze wurden nicht überschrieben. Allerdings solltest du auf die Zeichensätze achten, sonst bekommst du Probleme mit den Umlauten. Das kannst du aber dann in PHP umsetzen.
Hoffe, ich habe dich ein wenig weiter gebracht.
Ich habe kurz eine dreispaltige Excel-Tabelle erstellt und sie im csv_format exportiert. Allerdings hat Excel den Semikolon als Spaltentrennzeichen verwendet.
Im MySQL Monitor hab ich dann folgende Befehl abgesetzt:
1
LOAD DATA LOCAL INFILE 'pfad_zum_csv_file' INTO TABLE tabellenname FIELDS TERMINATED BY ';' IGNORE 1 LINES;
Habe den Befehl mehrere Male wiederholt, bestehende Datensätze wurden nicht überschrieben. Allerdings solltest du auf die Zeichensätze achten, sonst bekommst du Probleme mit den Umlauten. Das kannst du aber dann in PHP umsetzen.
Hoffe, ich habe dich ein wenig weiter gebracht.