procedure TPrincipal.exportarGridExcel (mGrid : tdbgrid; lab:Tlabel);
var
rangoExcel : VARIANT; i, fila : integer;
mMarcador : Tbookmarkstr;
mTabla : tdataset;
aplicacionExcel : TExcelApplication;
begin
Try
Screen.Cursor := crHourGlass;
Tlabel(Lab).Font.Color:= clRed ; Tlabel(Lab).Font.Name:='Georgia';
aplicacionExcel := TExcelApplication.Create(nil);
mTabla := mGrid.datasource.dataset;
aplicacionExcel.workbooks.add(NULL, 0);
rangoExcel := aplicacionExcel.ActiveCell;
for i:= 0 to mTabla.Fields.Count - 1 do
begin
rangoExcel.Value := mTabla.Fields[i].DisplayLabel;
rangoExcel := rangoExcel.Next;
end;
rangoExcel.AutoFormat(10, 3, NULL, NULL, NULL, NULL, NULL);
mTabla.DisableControls;
try
mMarcador := mTabla.Bookmark;
try
mTabla.First;
fila := 2;
while not mTabla.Eof do
begin
rangoExcel := aplicacionExcel.Range['A' + inttostr(fila), 'A' + inttostr(fila)];
for i := 0 to mTabla.Fields.Count - 1 do
begin
If ( (mTabla.Fields[i].DisplayLabel='P_FECHA')or (mTabla.Fields[i].DisplayLabel='FECHA')or (mTabla.Fields[i].DisplayLabel='FECHA_SUSCRIPCION')or (mTabla.Fields[i].DisplayLabel='FECHA_ACTA_INICIO')or (mTabla.Fields[i].DisplayLabel='FECHA_TERMINACION')or (mTabla.Fields[i].DisplayLabel='FECHA_CDP1')or (mTabla.Fields[i].DisplayLabel='FECHA_RP1')or (mTabla.Fields[i].DisplayLabel='FECHA_APROBACION_POLIZA')) then
rangoExcel.Value := mTabla.Fields[i].AsDateTime
else
If ( (mTabla.Fields[i].DisplayLabel='FECHA_PUBLICACION_PROYECTO')or (mTabla.Fields[i].DisplayLabel='FECHA_EXPEDICION_POLIZA')or (mTabla.Fields[i].DisplayLabel='PERIODOI_CALIDAD')or (mTabla.Fields[i].DisplayLabel='PERIODOF_CALIDAD')or (mTabla.Fields[i].DisplayLabel='PERIODOI_CUMPLIMIENTO')or (mTabla.Fields[i].DisplayLabel='PERIODOF_CUMPLIMIENTO')or (mTabla.Fields[i].DisplayLabel='PERIODOI_PRESTACIONES')or (mTabla.Fields[i].DisplayLabel='PERIODOF_PRESTACIONES')) then
rangoExcel.Value := mTabla.Fields[i].AsDateTime
else
If ((mTabla.Fields[i].DisplayLabel='FECHA_RETIRO')And (Not(mTabla.Fields[i].IsNull)) ) Then
rangoExcel.Value := mTabla.Fields[i].AsDateTime
else
If ((mTabla.Fields[i].DisplayLabel='PAGOS_REALIZADOS')And (Not(mTabla.Fields[i].IsNull)) ) Then
begin
rangoExcel.Value := mTabla.Fields[i].AsDateTime;
end
Else
rangoExcel.Value := mTabla.Fields[i].AsString;
rangoExcel := rangoExcel.Next;
end;
mTabla.Next;
Inc(fila);
Tlabel(Lab).Caption:='Exportando... Fila Nro.'+IntToStr(Fila);
end;
finally
mTabla.Bookmark := mMarcador;
end;
finally
mTabla.EnableControls;
end;
Tlabel(Lab).Font.Color:=clNavy;
Tlabel(Lab).Caption:='Exportación Terminada!.';
Screen.Cursor := crDefault;
aplicacionExcel.Visible[0] := true;
aplicacionExcel.Disconnect;
except
on exception do
begin
aplicacionExcel.Quit;
messagedlg(' la exportación de datos, Esta Terminando su Proceso.',mterror,[mbok],0);
end;
end;
end;