Excel file vom Webserver in DB einlesen

Michi_R

Fleissiger Benutzer
Beiträge
81
Hallo Leute

Mein Ziel ist folgendes:
Ich kann mit php ein Excel file auf meinen Server hochladen. Dann möchte ich automatisiert (also es soll direkt nach dem hochladen passieren), dass das hochgeladene Excel file in eine DB Tabelle geschrieben wird.

Entweder nacheinander, also:
File wählen, Formular absehnen und dann im Formular, das beim absenden aufgerufen wird eine DB-Verbindung und ein Query der das Excel File vom Webserver nimmt und in die DB schreibt. Geht so etwas mit einem Query?

Oder direkt, dass das File gar nicht am Server abgelegt wird, sondern direkt in die DB geschrieben wird.

Ich weiß, es ist auch eine php Sache, aber gerade beim Nacheinander (erster Vorschlag oben) scheitert es bei mir gerade am Query bzw. am Vorgehen mit der DB.

Danke schon mal,
Michi
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.160
Hallo Leute

Mein Ziel ist folgendes:
Ich kann mit php ein Excel file auf meinen Server hochladen. Dann möchte ich automatisiert (also es soll direkt nach dem hochladen passieren), dass das hochgeladene Excel file in eine DB Tabelle geschrieben wird.

Was genau willst Du machen, die Datei als solches in der DB speichern, oder den Inhalt aus dem Excel-Shit irgendwie als Daten interpretieren und in die DB schreiben?


Letzteres stelle ich mir nicht-trivial vor, eine CSV-Datei wäre da um Größenordnungen handlicher.

Ich weiß, es ist auch eine php Sache, aber gerade beim Nacheinander (erster Vorschlag oben) scheitert es bei mir gerade am Query bzw. am Vorgehen mit der DB.

Danke schon mal,
Michi

Genau. PHP. Die Datenbank als solche kann sowas eher nicht von selber machen.
 

Michi_R

Fleissiger Benutzer
Beiträge
81
Ja, die Daten des Excel-sheets sollen in eine DB Tabelle geschrieben/übertragen/eingelesen werden.

Im Prinzip genau das was ich machen kann wenn ich z.b. "händisch" im MS SQL Server Management Studio Rechtsklick auf die tabelle mache und sag "Daten importieren", dann kann ich ja auch sagen, dass meine Quelle ein Excel file ist und dass ich da in die Tabelle schreiben möchte. Nur dass die Excel Quelldatei in meinem Fall nicht am Client liegt sondern schon am Server ist und ich nicht händisch den Import-Assistenten ausführen möchte.

Hast du irgendeine Ahnung wie das mit php aussehen kann/muss? Mir fehlt hier gerade ein wenig der Ansatzpunkt, die Bauanleitung sozusagen wie ich beginnen bzw. wo ich suchen soll.
 

akretschmer

Datenbank-Guru
Beiträge
9.160
Hast du irgendeine Ahnung wie das mit php aussehen kann/muss? Mir fehlt hier gerade ein wenig der Ansatzpunkt, die Bauanleitung sozusagen wie ich beginnen bzw. wo ich suchen soll.

Nein, sorry. Ist hier wohl auch das falsche Forum. Es gibt IIRC Klassen / Bibliotheken für PHP, um auf Excel-Shits zugreifen zu können.
 

Michi_R

Fleissiger Benutzer
Beiträge
81
Du meinst also, ich muss mir mit PHP die Daten soweit aus dem Excel Sheet rausholen und aufbereiten, dass ich sie mit simplen insert into Querys in die DB schreiben kann? (Wäre zumindest schon mal ein Ansatz).
 

akretschmer

Datenbank-Guru
Beiträge
9.160
Du meinst also, ich muss mir mit PHP die Daten soweit aus dem Excel Sheet rausholen und aufbereiten, dass ich sie mit simplen insert into Querys in die DB schreiben kann? (Wäre zumindest schon mal ein Ansatz).

So ungefähr. Im PHP-Forum hat jemand, mit anderem Nick, eine 100% gleiche Frage gestellt. Zufälle gibt es, ...
 

ukulele

Datenbank-Guru
Beiträge
4.409
Reden wir jetzt über MySQL oder über MSSQL?

In MSSQL gibt es Möglichkeiten Daten aus Exceldateien auszulesen (ROWSET, BULK IMPORT, etc.), allerdings werden dazu ODBC Treiber verwendet. Ich kann nicht sagen in wie fern sowas unter MySQL und eventuell unter Linux geht.
 

Michi_R

Fleissiger Benutzer
Beiträge
81
Testumgebung gerade ist MYSQL, soll aber letztendlich mit MSSQL implementiert werden. Dachte dass sich das in dem Fall nicht groß unterscheidet, aber wenn es doch so ist probiere ich es gleich in MSSQL.
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.409
Ich persönlich nutze gerne OPENROWSET. Leider birgt es ein paar Nachteile:
1) Es muss aktiviert bzw. erlaubt werden und davon wird abgeraten wenn man es nicht braucht weil es die Angriffsfläche erhöht, kann man halten wie man will.
2) Die Syntax ist abhängig vom Betriebssystem, der SQL Version, wieviel Bit das OS hat, wieviel Bit der SQL Server hat etc. etc.
3) Es müssen Office ODBC Komponenten installiert werden
4) Manchmal will es einfach nicht :)
 
Oben