Es una función que recibe por parametros un dataset y un nombre de archivo:
Código Delphi
[-]
procedure ExportarExcel( DataSet:TDataSet ; cNomArchivo: string);
var
Excel: variant; Libro: variant; Hoja: variant; fila, columna, campo: integer;
marca: string;
begin
Application. CreateForm( TfrmAnimacion, frmAnimacion) ;
With frmAnimacion do
try
Show;
Screen.Cursor := crHourGlass;
try
Excel := CreateOleObject( 'Excel.Applicati on');
try
Excel.visible := False;
Excel.SheetsInNewWo rkbook := 1;
Libro := Excel.WorkBooks. Add;
Hoja := Libro.WorkSheets[ 1];
with DataSet do begin
fila := 1;
columna := 1;
for campo := 0 to FieldCount - 1 do
with Fields[campo] do
begin
Hoja.Cells[fila, columna] := DisplayName;
Inc(columna) ;
end;
Hoja.Rows[fila] .Font.Bold := True;
DisableControls;
try
Marca:= Dataset.Bookmark; First;
while not Eof do begin
Inc(fila); columna := 1;
for campo := 0 to FieldCount - 1 do
with Fields[campo] do begin
if not IsNull then if DataType = ftString then
Hoja.Cells[fila, columna] := '''' + AsString
else
try
Hoja.Cells[fila, columna] := Value;
except
Hoja.Cells[fila, columna] := DisplayText;
end;
Inc(columna) ;
end;
Next; end;
finally
Dataset.Bookmark := Marca; EnableControls;
end;
end;
finally
try Hoja.Cells.Columns. AutoFit; except end; Libro.saveas( cNomArchivo) ;
Excel.quit ;
Screen.Cursor := crDefault;
end;
except
Application. MessageBox( 'Excel no se encuentra instalado en este equipo, no se puede exportar','Error' ,mb_OK + mb_IconExclamation) ;
end;
finally
Free;
end;
end;
Saludos, Daniel de Uruguay