Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Iport einer Excel-Datei (https://www.delphipraxis.net/90800-iport-einer-excel-datei.html)

WoTo 24. Apr 2007 08:07

Datenbank: keine • Zugriff über: direkter Zugriff auf Datei

Iport einer Excel-Datei
 
Hallo zusammen,
ich möchte eine Excel-Datei (Office 2003-Format) einlesen ohne jedoch MS Office installiert zu haben ! :gruebel:

Hat jemand vielleicht eine Klasse oder gibt es Freeware-Komponenten dafür ? :hi:

MfG
Woto

Bernhard Geyer 24. Apr 2007 08:11

Re: Iport einer Excel-Datei
 
Entweder über den JET-Treiber von Access (ist eigentlich auf jedem Rechner vorhanden) und über ADO oder über native Komponente wie Flexel von TMS

WoTo 24. Apr 2007 08:18

Re: Iport einer Excel-Datei
 
Leider ist Flexel von TMS keine Freeware.
Gibt es denn keine einfache Möglichkeit, eine Excel-Datei zu importieren ? :gruebel:

Vielleicht hat jemand ein kleines Beispiel.

WoTo 24. Apr 2007 12:43

Re: Iport einer Excel-Datei
 
Hallo zusammen,
habe mir eine kleine Funktion geschrieben, die mit Hilfe von ADO eine Exceltabelle einliest.

Für alle die es interessiert hier der Quellcode:

Delphi-Quellcode:
function TCreateIni.MakeConnection: TAdoTable;
var
  ADOTable : TADOTable;
begin
  ADOTable := TADOTable.Create(nil);
  try
    ADOTable.ConnectionString:= 'Provider=MSDASQL.1;' +
                                'Persist Security Info=False;' +
                                'Mode=ReadWrite;' +
                                'Extended Properties="DSN=Excel-Dateien;' +
                                'DBQ=' + FFileName + ';' +
                                'DriverId=790;' +
                                'MaxBufferSize=2048;' +
                                'PageTimeout=5;";';
    ADOTable.TableName := '[Sheet1$]';
    ADOTable.Active := true;
    Result := ADOTable;
  except
    on e:exception do
    begin
      ShowMessage(e.Message);
      FreeAndNil(ADOTable);
      Result := nil;
    end;
  end;
end;
Nachdem sich die ADOTable erfolgreich angebunden hat, kann man die Daten der Table weiterverarbeiten. :hi:
(ADOTable.FieldByName('SoSo').AsString)

Wichtig dabei ist, daß die 1. Zeile in der Exceldatei als Tabellenüberschrift in der ADOTable gilt. :warn:
Beispiel:

In Excel
Feld A1 : SoSo
Feld A2 : xyz

Im Quellcode:
Delphi-Quellcode:
var
  temp : string;
begin
  temp := ADOTable.FieldByName('SoSo').AsString;
end;
Die Variable Temp beinhaltet jetzt den String 'xyz'.

Viel Spaß noch, :hi:
Woto


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 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