Excel-Daten in eine Datenbank extrahieren. Wie ist das zu lösen, ohne dafür ein Skript basteln zu müssen? Jeder Aufwand muss ja für den Nutzen adäquat bleiben. Meine erste Idee, war es tatsächlich, ein Skript für die Konvertierung zu schreiben, aber dann dachte ich mir, das ist ein so allgemeinen Problem; dafür gibt es bestimmt schon eine Lösung.
Wie der Überschrift zu entnehmen: Ja, die gibt es!
Das Tool heißt TableConvert und ist ein Online-Tool. Einer der dort angebotenen Services nennt sich excel-to-sql. Genau das, was ich suche.
Man überträgt die Daten mit Copy und Paste in ein Textfeld und das Tool macht daraus einen SQL-String; auf Wunsch mit oder ohne Create Table. Natürlich werden die Spaltentabellen nicht genauso heißen wie die Spalten in der Datenbank. Etwas nach editieren ist schon noch notwendig. Ebenso vielleicht ein paar Daten-Konvertierungen, wie z. B. Datumsumwandlungen von dd.mm.yyyy ins datenbankgerechte yyyy-mm-dd (Lösung, siehe in meinem anderen Blog).
Hier der URL: https://tableconvert.com/excel-to-sql
Die Betreiber beteuern Verschwiegenheit. Wer mag, kann etwas spenden und sich in die Sponsorenliste eintragen lassen. Ich denke, dass dieser Service vielen helfen kann.
Memo für mich
Notwendige Nachbearbeitung des erzeugten SQL-Strings:- Spaltennamen umbenennen
- Datum konvertieren: suche (\d{2})\.(\d{2})\.(\d{4}) ersetzen durch \3-\2-\1
- Leere Felder in NULL umwandeln: suche ‘’ ersetze mit NULL
- Bei Zahlen in Anführungszeichen, diese entfernen mit RegEx: Suche (')(\d+)(') Ersetze mit \2