AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Daten aus Excel auslesen und in MySQL einfügen
Thema durchsuchen
Ansicht
Themen-Optionen

Daten aus Excel auslesen und in MySQL einfügen

Ein Thema von LeahCim · begonnen am 22. Aug 2005 · letzter Beitrag vom 13. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von LeahCim
LeahCim

Registriert seit: 15. Jul 2005
Ort: Wetschen
34 Beiträge
 
#1

Daten aus Excel auslesen und in MySQL einfügen

  Alt 22. Aug 2005, 13:13
Datenbank: MySQL • Zugriff über: MyDAC
Hallo,

ich hoffe ihr könnt mir wiedereinmal helfen.

Ich brauche ein kleines Prog um Daten aus einer Excel Tabelle auszulesen und in MySQL einzulesen...naja, besser währe es wenn das eine Funktion währe...

So, was noch dazu kommt, ist das die Tabellen wo die Daten her kommen nicht immer gleich sind...also währe ein Grid zum auswählen auch nicht schlecht...hat jemand sowas schonmal gemacht?

Währe auch schön wenn ihr es mir so erklären könnt, dass es auch ein dummer versteht....bin anfänger

Danke im vorraus!

MFG

der Leah...
AZUBI - Ich bin ein Newbie und stehe dazu!!!
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#2

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

  Alt 22. Aug 2005, 13:17
ich kann dir da das Programm Bei Google suchenNavicat emphelen. Ist leider kein Freware, aber man bekommt eine 30 tage umsonst version.

Anonsten kannst du in Excel auch die Daten ins csv speichern und das kannst du dann ganz bequem mit php oder delphi oder was auch immer auswerten.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von LeahCim
LeahCim

Registriert seit: 15. Jul 2005
Ort: Wetschen
34 Beiträge
 
#3

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

  Alt 23. Aug 2005, 08:38
Zitat von yankee:
ich kann dir da das Programm Bei Google suchenNavicat emphelen. Ist leider kein Freware, aber man bekommt eine 30 tage umsonst version.

Anonsten kannst du in Excel auch die Daten ins csv speichern und das kannst du dann ganz bequem mit php oder delphi oder was auch immer auswerten.
Gibt es denn keine andere Möglichkeit?
AZUBI - Ich bin ein Newbie und stehe dazu!!!
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#4

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

  Alt 23. Aug 2005, 08: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
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

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

  Alt 23. Aug 2005, 09:01
Zitat von jensw_2000:
nimm eine TADOConnection und eine TADOTable.
Genau das wollt ich auch vorschlagen, aber Jens war schneller.

Zum Einlesen deiner Tabellen musst du nur in Excel deine Namensbereiche definieren, inklusive Spaltenköpfe.
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#6

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

  Alt 23. Aug 2005, 09:40
Zitat:
Genau das wollt ich auch vorschlagen, aber Jens war schneller.
Endlich mal..

Einen Punkt habe ich aber überlesen...

Zitat:
So, was noch dazu kommt, ist das die Tabellen wo die Daten her kommen nicht immer gleich sind...
Die Felddefinition in deiner MySQL-DB sind vermutlich relativ konstant und vor allem bekannt.

Baue dir am besten einfach einen kleinen "FieldMapper" (s.Screenshot) mit dem du die passenden Felder aus der Excel Tabelle zu deinem MySQL Feldern zuordnen kannst.

Dann kannst du die Daten flexibel (am Besten über eine SP) in die Datenbank importieren.

Prinzipiell kannst du so dynamisch die, zu deiner MyTable passenden, Excel Spaltennamen aus dem FieldMapper auslesen und nutzen ...

Delphi-Quellcode:
MyTable.FieldByName('Wohnort').value:=
  xlsTable.FieldByname(Fieldmapper.Values[FieldMapper.IndexOf('fWohnort')]).value;
Delphi-Quellcode:
MySP.ParametersByName('Wohnort'):=
  xlsTable.FieldByname(Fieldmapper.Values[FieldMapper.IndexOf('fWohnort')]).value;
Miniaturansicht angehängter Grafiken
fieldmapper_183.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von LeahCim
LeahCim

Registriert seit: 15. Jul 2005
Ort: Wetschen
34 Beiträge
 
#7

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

  Alt 23. Aug 2005, 15:42
Danke für die vielen Tips...bin aber im moment ein bisschen überfordert...

erstmal will ich die Daten sauper auslesen, und das ganze in einem Grid darstellen...soweit bin ich bis jetzt...:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var name : string;
begin
box1.text := '';
box1.Enabled := false;
AdoConnection1.Connected := false;
name := 'none';
OpenDialog1.FileName := 'none';
OpenDialog1.Execute;
if RightStr(OpenDialog1.FileName, 3) = 'xlsThen
begin
name := OpenDialog1.FileName;
If name = 'noneThen
begin
end
else begin
AdoConnection1.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ name +';Extended Properties=Excel 8.0;Persist Security Info=False';
AdoConnection1.Open;
Box1.Enabled := true;
Box1.Text := 'Bitte auswählen';
AdoConnection1.GetTableNames(Box1.Items);
Button2.Visible := true;
end;
end
else
begin
Button2.Visible := false;
Showmessage('Es muss eine XLS-Datei ausgewählt werden!');
end;
if Box1.items.count = 1 then
begin
box1.Text := box1.Items.Text;
end
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if box1.Text = 'Bitte auswählenthen
begin
Showmessage('Es muss eine Tabelle ausgewählt werden!')
end
else
begin
AdoTable1.Connection := AdoConnection1;
AdoTable1.TableName := Box1.items[Box1.itemindex];
AdoTable1.Active := true;
end;
end;
Wobei Box1 ein Dropdown feld ist...der rest müsste sich von alleine erklären...das funktioniert auch bis jetzt...leider mach er sobald ich deb ADOTable1 auf true setze nen Syntaxfehler...ich häng die exe mal an...
Angehängte Dateien
Dateityp: exe excelprojekt_647.exe (653,5 KB, 57x aufgerufen)
AZUBI - Ich bin ein Newbie und stehe dazu!!!
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#8

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

  Alt 23. Aug 2005, 15:49
Korrigierter Beitrag ...

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
if box1.Text = 'Bitte auswählenthen
begin
Showmessage('Es muss eine Tabelle ausgewählt werden!')
end
else
begin
AdoTable1.Connection := AdoConnection1;
// Der Name enthält ein $. Damit der Tabellenname trotz Sonderzeichnen
// akzeptiert werden kann, muss er in eckigen Klammern stehen
AdoTable1.TableName := '['+Box1.items[Box1.itemindex]+']'; // <<<<
AdoTable1.Active := true;
end;
end;
Bei einer TAdoTable kann man das auch irgendwie anders hinbiegen.
Leider kann ich da grade nicht reinschauen. (denke das war TableDirect := true ...)
  Mit Zitat antworten Zitat
Benutzerbild von LeahCim
LeahCim

Registriert seit: 15. Jul 2005
Ort: Wetschen
34 Beiträge
 
#9

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

  Alt 23. Aug 2005, 15:59
öhm... wie? einfach die Zeile hinzufügen? Dann klappt garnichts mehr...
AZUBI - Ich bin ein Newbie und stehe dazu!!!
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#10

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

  Alt 23. Aug 2005, 16:03
entschuldige bitte...
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
if box1.Text = 'Bitte auswählenthen
begin
Showmessage('Es muss eine Tabelle ausgewählt werden!')
end
else
begin
AdoTable1.Connection := AdoConnection1;
AdoTable1.TableName := '['+Box1.items[Box1.itemindex]+']'; //<<<<<<<<<<<<<<<< Da meine ich ...
AdoTable1.Active := true;
end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz