Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 

Re: Daten aus Excel auslesen und in MySQL einfügen

  Alt 23. Aug 2005, 07:50
Ja,

nimm eine TADOConnection und eine TADOTable.
Damit kannst du jede Excel Arbeitsmappe öffnen, ohne das Excel installiert sein muss.
Ado liest die Excel Arbeitsbereichsseiten sauber ein und interprätiert sogar berechnete Felder (Formeln) richtig.


Öffnen kannst du die XLS so ..
Delphi-Quellcode:
 
      // Opendialog öffnen und AdoConnection verbinden

      Adoconn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
        'Provider=Microsoft.Jet.OLEDB.4.0; ' +
        'Data Source=' + Opendialog.Filename + ';' +
        'Extended Properties=Excel 8.0; ' + //<< immer Excel 8.0 !!!
        'Persist Security Info=False';
      Adoconn.open;
      
      // Eine Combobox (xlsWorksheets mit den Arbeitsbereichsseiten der Excel Arbeitsmappe füllen

      xlsWorksheets.Enabled := Adoconn.Connected;
      if Adoconn.Connected then
      begin
        Adoconn.GetTableNames(xlsWorksheets.Items, true);
      end;

      // Wenn es mindestens eine Arbeitsbereichsseite gibt > Auswählen und Öffnen
      
      ...
       User die gewünschte Arbeitsbereichsseite wählen lassen
       ggf. automatisch xlsWorksheets.Items[0] verwenden, falls es nur eine Arbeitsbereichsseite gibt
      ...
 
      if xlsWorksheets.items.count =0 then
      begin
        Showmessage('In der gewählten Arbeitsmappe sind keine Arbeitsbereichsseiten verfügbar');
        exit;
      end
      else begin
         With AdoTableXLS do
         begin
           close;
           Connection:=Adoconn;
           tablename:=xlsWorksheets.items[xlsWorksheets.itemindex];
           open;
         end;
      end;
  Mit Zitat antworten Zitat