Kommt halt drauf an, Pumba, was du genau tun willst
Ich hab das auch mal gemacht, also von der Datenbank erst in ein DBGrid, dann in ein StringGrid und schließlich nach Excel, aber das musste ich so machen, weil ich mehrere Querys nacheinander habe laufen lassen und im STringGrid jeweils die neuen Daten im DBGrid mit den vorhandenen verglichen habe.
Und als Möglichkeit für den User habe ich den Export nach Excel eingebaut...
Wenn du sowas in die Richtung machen willst (und verstanden hast, was ich da geschrieben hab
) hier ein paar Codes zum Nachgucken:
Delphi-Quellcode:
rowCount := 0;
//Übernehmen der Daten aus der DBGrid in ein StringGrid
while not qryDatenbank.Eof do
begin
for k := 0 to DBGrid.Columns.Count - 1 do
begin
StringGrid.Cells[k, rowCount] := DBGrid.Fields[k].AsString;
qryDatenbank.Next;
end;
rowCount := rowCount + 1;
StringGrid.RowCount := rowCount;
end;
Und hier dann der Export nach Excel:
Delphi-Quellcode:
procedure ExcelSpeichern;
var RowC, ColC: integer;
Str:
string;
StrList: TStringList;
begin
//zunächst wird hier eine csv-Datei erstellt:
StrList := TStringList.Create();
for RowC := 0
to sgGarantie_Daten.RowCount - 1
do
begin
Str := '
';
for ColC := 0
to sgGarantie_Daten.ColCount - 1
do
Str := Str + sgGarantie_Daten.Cells[ColC, RowC] + '
;';
Delete(Str, length(Str), 1);
// löscht den überfluessigen String
StrList.Add(Str);
end;
StrList.SaveToFile('
tmpExcel.csv')
//dann wird die Datei mit Excel geöffnet:
ShellExecute(Application.Handle, '
OPEN', pchar(ExtractFilePath
(Application.ExeName) + '
tmpExcel.csv'),
NIL,
NIL, SW_NORMAL);
// und schließlich die csv-Datei wieder gelöscht
DeleteFile(ExtractFilePath(Application.ExeName) + '
tmpExcel.csv');
end;
hoffe, das hilft dir weiter