ke tal mrmanuel, yo maneje algo parecido con el delphi 7 y sql server ai te mando el codigo para ke lo chekes a ver si te sirve, yo paso lo que tengo de un adoquery a un excel, ai te lo dejo para ke lo veas a ver si te sirve:
Código Delphi
[-]
procedure Tbusquedas.botonexcelClick(Sender: TObject);
var
fila:Integer;
begin
ExcelApplication1.Connect;
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
ExcelWorkSheet1.ConnectTo(ExcelApplication1.Sheets[1] as _WorkSheet);
adoquery2.First;
ExcelWorkSheet1.Cells.Item[1,1].Value := 'REPORTE DE REINCIDENCIAS EN EL PERIODO '+incidendesde.Text+' A '+incidenhasta.Text+' ';
ExcelWorkSheet1.Cells.Item[2,1].Value := 'RFC';
ExcelWorkSheet1.Cells.Item[2,2].Value := 'PLAZA';
ExcelWorkSheet1.Cells.Item[2,3].Value := 'NOMBRE';
ExcelWorkSheet1.Cells.Item[2,4].Value := 'DESDE';
ExcelWorkSheet1.Cells.Item[2,5].Value := 'CHEQUE';
ExcelWorkSheet1.Range['A1','E2'].Font.Bold := True;
ExcelWorkSheet1.Range['A1','A1'].ColumnWidth := 16;
ExcelWorkSheet1.Range['B1','B1'].ColumnWidth := 23;
ExcelWorkSheet1.Range['C1','C1'].ColumnWidth := 60;
ExcelWorkSheet1.Range['D1','D1'].ColumnWidth := 8;
ExcelWorkSheet1.Range['E1','E1'].ColumnWidth := 8;
Fila:=3;
while not adoquery2.Eof Do
with ExcelWorkSheet1.Cells Do Begin
Item[Fila,1].value := adoquery2.FieldValues['rfc'];
Item[Fila,2].value := adoquery2.FieldValues['plaza'];
Item[Fila,3].value := adoquery2.FieldValues['nombre'];
Item[Fila,4].value := adoquery2.FieldValues['desde_pag'];
Item[Fila,5].value := adoquery2.FieldValues['cheque'];
Inc(Fila);
adoquery2.Next;
end;
showmessage('REPORTE GENERADO!');
ExcelApplication1.Visible[0]:=true;
ExcelWorkSheet1.Disconnect;
ExcelWorkBook1.Connect;
ExcelApplication1.Connect;
end;
donde ExcelApplication1,ExcelWorkBook1 y ExcelWorkSheet1 son componentes que aparecen en la paleta de server (bueno al menos en el delphi 7), obiamente el adoquery ya tiene una consulta antes ke genere y ya despues puse otro boton donde ya genera el archivo en excel...
Espero te sirva de algo..saludos......