Excel Import

Auch wenn man kein Freund von Microsoft ist bekommt man immer wieder Daten in Excel zum importieren geliefert. Wenn man diese als CSV Datei exportiert klappt das solange die Texte keine Zeilenumbrüche enthalten. Wenn doch, dann wird's schwierig.

Zunächst mal die simple Variante, die eben aber mit Zeilenumbrüchen nicht klarkommt:

Excel Import (copy 1)

Dieses Beispiel stammt aus meiner Extension rsys_products. Der Tabellenname ist gleich dem Dateinamen, es gibt ein Dataset zum Umschalten der verwendeten Daten.

EXCEL

Dieser Import ist noch nicht fertig programmiert, nur für den händischen Import. Aber immerhin. Also: Ziel ist Excel direkt auszulesen ohne den Umweg über CSV. Dafür gibt es PHPExcel von http://www.codeplex.com/PHPExcel. Nach der Installation findet sich im Ordner Test eine Datei14excel5.php. Diese war mein Ausgangspunkt. Ich habe hinzugefügt, dass die Feldnamen aus der ersten Zeile zum INSERT statement bauen verwendet werden (wie schon oben) und dann gab es noch einen Abbruch bei Feldern in Excel, die formatiert waren und damit als RTF Feld erkannt werden. Manchmal konnte ich gar keine Formatierung feststellen, aber der Import brach trotzdem ab. Also hier meine Variante mit der Funktion getAllValues, die sowohl Text als auch RTF Felder lesen kann.

Excel Import (copy 1)

Hier wird nur die SQL angezeigt, die man dann noch manuell ausführen muss.