pues me pasaba lo mismo y opte por hacer mi propia rutina de migracion basandose en algun query activo
algo asi
Código Delphi
[-]
Procedure TfrmReporteConsumo.ExportarToExcel(fName: string);
const
xlWBATworksheet = -4167;
var Excel, WorkBook, WorkSheet: OleVariant;
begin
_FilaTitulos := 6;
Excel := CreateOleObject('Excel.Application');
Excel.DisplayAlerts := False;
WorkBook := Excel.Workbooks.Add(xlWBATWorksheet);
WorkSheet := WorkBook.WorkSheets[1];
WorkSheet.Name := 'Hoja1';
WorkSheet.Cells[1,1].font.Bold := True;
WorkSheet.Cells[1,1] := 'Nombre de la empresa';
WorkSheet.Cells[3,1] := 'Reporte Consolidado de Consumos (Facturacion)';
WorkSheet.Cells[4,1] := 'Periodo : ' + FormatDateTime ('dd/mm/yyyy', dtFechaIni.date) + ' Al ' + FormatDateTime ('dd/mm/yyyy', dtFechaFin.date);
worksheet.range['A3:J5'].HorizontalAlignment := xlHAlignCenterAcrossSelection;
WorkSheet.cells[_FilaTitulos,1] := 'Codigo';
WorkSheet.cells[_FilaTitulos,2] := 'Trabajador';
WorkSheet.cells[_FilaTitulos,3] := 'Fecha Solicitada';
WorkSheet.cells[_FilaTitulos,4] := 'Monto hasta la fecha';
WorkSheet.cells[_FilaTitulos,5] := 'Dcto.Trabajador';
WorkSheet.cells[_FilaTitulos,6] := 'Dcto.Empresa';
WorkSheet.cells[_FilaTitulos,7] := 'Importe Cesado';
WorkSheet.cells[_FilaTitulos,8] := 'Total';
WorkSheet.cells[_FilaTitulos,9] := 'Cant.Empresa';
WorkSheet.cells[_FilaTitulos,10] := 'Cant. Subvencionada al 100%';
i:= _FilaTitulos + 1;
qryConsumos.First;
while not qryConsumos.Eof do
begin
WorkSheet.cells[i,1].NumberFormat := '@';
WorkSheet.cells[i,1] := _Ccos;
WorkSheet.cells[i,2] := qryConsumosDescripcion.AsString;
...
...
qryConsumos.Next;
end;
WorkSheet.Cells.Columns.AutoFit;
WorkBook.SaveAs(fname);
WorkBook.Close(fName);
Excel.Quit;
end;
espero te sirva