Procedure SavetoExcel(DBGrid1 : TDBGrid); var i, j: integer; F1Book1: TF1Book; XlsPath: string; SaveDialog1 : TSaveDialog; begin SaveDialog1 := TSaveDialog.Create(nil); SaveDialog1.Filter := 'Excel files (*.xls)|*.xls'; if SaveDialog1.Execute = True then XlsPath := SaveDialog1.FileName else Exit; try F1Book1 := TF1Book.Create(nil); for i := 1 to Dbgrid1.Columns.Count do begin F1Book1.TextRC[1,i] := Dbgrid1.Columns.Items[i-1].Title.Caption; end; Dbgrid1.DataSource.DataSet.First; j := 1; while not Dbgrid1.DataSource.DataSet.Eof do begin j := j + 1; for i := 1 to Dbgrid1.Columns.Count do begin F1Book1.TextRC[j,i] := Dbgrid1.DataSource.DataSet.Fields[i-1].AsString; end; Dbgrid1.DataSource.DataSet.Next; end; F1Book1.Write(Trim(XlsPath)+'.xls',F1FileExcel5); finally F1Book1.Free; end; SaveDialog1.Free; F1Book1.Free; end;
var
i, j: integer;
F1Book1: TF1Book;
XlsPath: string;
SaveDialog1 : TSaveDialog;
begin
SaveDialog1 := TSaveDialog.Create(nil);
SaveDialog1.Filter := 'Excel files (*.xls)|*.xls';
if SaveDialog1.Execute = True then
XlsPath := SaveDialog1.FileName
else
Exit;
try
F1Book1 := TF1Book.Create(nil);
for i := 1 to Dbgrid1.Columns.Count do
begin
F1Book1.TextRC[1,i] := Dbgrid1.Columns.Items[i-1].Title.Caption;
end;
Dbgrid1.DataSource.DataSet.First;
j := 1;
while not Dbgrid1.DataSource.DataSet.Eof do
begin
j := j + 1;
for i := 1 to Dbgrid1.Columns.Count do
begin
F1Book1.TextRC[j,i] := Dbgrid1.DataSource.DataSet.Fields[i-1].AsString;
end;
Dbgrid1.DataSource.DataSet.Next;
end;
F1Book1.Write(Trim(XlsPath)+'.xls',F1FileExcel5);
finally
F1Book1.Free;
end;
SaveDialog1.Free;
F1Book1.Free;
end;