![]() |
Datenbank: MYSQL/MSSQL • Zugriff über: ADO
Datenimport von zB .xls zu mysql
Hallo erstmal!
Ich würde (vorerst) gerne die Daten aus einer .xls Datei in eine MySQL-DB importieren. Der Transfer von Excel zu MS-SQL geht ganz einfach automatisch über folgende zeile:
SQL-Code:
Nun ist meine Frage ob es ähnlich einfache Umsetzungsmöglichkeiten auch für MySQL gibt oder ob ich wirklich diesen riesigen Umweg machen muss(Tabellen der xls auslesen, typen überprüfen, eine entsprechende Clontabelle auf der MySQL-DB anlegen, die xls in ne Textdatei und dann mit load infile)?
SELECT * INTO Tabelle FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb); DBQ=C:\text.xls, 'Select * from [$Tabelle]')
Bin über jede Antwort diesbezüglich glücklich ;) fred |
Re: Datenimport von zB .xls zu mysql
So wird es nur mit Excel/MSSQL gehen.
|
Re: Datenimport von zB .xls zu mysql
also nur ueber diesen enormen umweg? ;/
|
Re: Datenimport von zB .xls zu mysql
Du kannst natürlich auch selber ein tool schreiben, bzw. ein Admintool für MySQL verwenden, welches das kann.
|
Re: Datenimport von zB .xls zu mysql
Hallo Fred,
ich hab das so gelöst, das ich mir die Daten aus der XLS in ein Dataset lade, das in einem Gríd anzeige und das anschließend durchlaufe und Zeile für Zeile in ein Memo schreibe.
Delphi-Quellcode:
Wenn fertig verbinde dich mit dem MySQL Server führe den Script aus (aus memo).col := ds_im.DataSet.FieldCount; cs:='CREATE TABLE 'Tabelle1'(`ID` int(11) NOT NULL auto_increment,'; for z := 0 to col-1 do begin cs := cs + '`' + ds_im.DataSet.Fields[z].FieldName + '` varchar(255),'; next; end; cs := cs + ' PRIMARY KEY (`ID`)) TYPE=MyISAM;'; textablage.Lines.Add(cs); textablage.Lines.Add(''); ds_im.DataSet.First; ad := ds_im.DataSet.RecordCount; //pb = statusbar pb.Visible := true; pb.Max := ad; pb.Position := 0; while not ds_im.DataSet.Eof do begin pb.StepBy(1); cs:= 'Insert into 'Tabelle1' Values(' + quotedstr(inttostr(pb.position)) + ','; for z := 0 to col-1 do begin cs := cs + quotedstr(ds_im.DataSet.Fields[z].AsString) + ','; next; end; cs:= leftstr(cs,strlen(pchar(cs))-1) + ');'; memo.Lines.Add(cs); ds_im.DataSet.next; Gruß Matt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz