Realice una funcion con los parametros TDbgrid y Tquery
Declarando en
Type
procedure ExpExcell(grid: tdbgrid; base: tquery);
Luego en
Implementation
Código Delphi
[-]procedure TForm1.ExpExcell(grid: tdbgrid; base: tquery); var
excel:Variant;
fila, columna:Integer;
begin
with base, base.SQL do
begin
Close;
Open;
if IsEmpty then
begin
MessageDlg('No existen datos que reportar!', mtWarning,[mbOk], 0);
Exit;
end;
TRY
excel := CreateOleObject('Excel.Application');
EXCEPT
ShowMessage('Excel no se pudo iniciar.');
exit;
END;
excel.Visible := true;
First;
fila := 1;
excel.Workbooks.Add;
for columna := 0 to Grid.Columns.Count-1 do
excel.Cells[fila,columna + 1].Value := Grid.Columns[columna].Title.Caption;
fila:=2;
DisableControls;
TRY
while not(eof) do
begin
for columna := 0 to Grid.Columns.Count-1 do
excel.Cells[fila,columna + 1].Value := FieldByName(Grid.Columns[columna].FieldName).asString;
Next;
inc(fila);
end;
for columna:=1 to Grid.Columns.Count-1 do
begin
Excel.Columns[Columna].EntireColumn.AutoFit;
end;
EXCEPT
ShowMessage('Atención, se produjo un error en la transmisión.');
END;
EnableControls;
end;
end;
Debo mencionar que este procedimiento es autoria de otro usuario, solo modifique los parametros para realizar un procedimiento adaptable a mi necesidad.
y por ultimo llamando el procedimiento asi:
Código Delphi
[-]procedure Tform1.ExportaraExcell1Click(Sender: TObject);
begin
ExpExcell(DbGrid,TQuery);
end;
Esperando sea de utilidad para otros usuarios, GRACIAS