Hallo,
ich habe mir hier im Forum einen Code zusammengsucht, um Daten von meiner MS
SQL DB nach Excel zu exportieren. Das funktioniert soweit, allerdings darf bei mir die "Tabelle" in Excel nicht mit der Zelle A1 - A4 anfangen, sondern die Tabelle soll im Excel Sheet bei c3 bis f5 liegen.
Ist dies mit
ADO Zugriff auf das Excel möglich? Hoffentlich, sonst muss ich wieder neu anfangen...
Delphi-Quellcode:
procedure TFRM_AM_Administration.ExcelExportClick(Sender: TObject);
Var ExcelConnection : TADOConnection;
Dataset : TADODataset;
i : integer;
ADOQuery : TADOQuery;
begin
ExcelConnection := TADOConnection.Create(
nil);
DataSet := TADODataSet.Create(
nil);
ExcelConnection.ConnectionString := '
Provider=Microsoft.Jet.OLEDB.4.0;'
+ '
Data Source=U:\test.xls;'
+ '
Mode=ReadWrite;'
+ '
Extended Properties="Excel 8.0;HDR=Yes";'
// + 'LoginPrompt=FALSE;'
+ '
Persist Security Info=False';
DataSet.Connection := ExcelConnection;
DataSet.CommandText := '
SELECT * FROM [Sheet1$]';
DataSet.Open;
DataSet.First;
while (DataSet.Eof = false)
do
begin
showmessage(DataSet.Fields[0].Text);
showmessage(DataSet.FieldByName('
ColumThree').AsString);
DataSet.Next;
end;
DataSet.Close;
// SQL Insert
ADOQuery := TADOQuery.Create(self);
ADOQuery.Connection := ExcelConnection;
ADOQuery.SQL.Text := '
Insert Into [Sheet1$] (ColumOne, ColumTwo, ColumThree) Values (''
Chaka1''
, ''
Chaka2''
, ''
Chaka3''
)';
ADOQuery.ExecSQL;
ADOQuery.Close;
ExcelConnection.Close;
end;
Thanx Marcus