Ver Mensaje Individual
  #1  
Antiguo 06-11-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Reputación: 17
lKinGl Va por buen camino
Talking Tutorial Paso a Paso Exportación de datos de TQuery a Excel

El código presentado y explicado a continuación fué desarrollado por mi, con ayuda de varios del foro

Pasos para exportar de 1 DbGrid1 a Excel

1) En la Pestaña Servers Buscamos y agregamos un componente llamado TExcelApplication
2) Esta demás decir que ya debe estar lista la consulta Sql sin errores
3) Agregar a la Uses ComObj
4) Declaramos las siguientes variables:
Cita:
Libro : _WORKBOOK;
Hoja : _WORKSHEET;
i:Integer;
5) agregamos este código dentro del begin y end del procedure, esta nos sirve para crear el archivo de excel sin Nombre, si le quieres poner nombre cambia Null por tu variable.

i nos manejará el número de filas

Cita:
i:=0;
Libro := ExcelApplication1.Workbooks.Add(Null, 0);
6)luego agregamos esta nueva linea de código en donde elegimos en que Hoja vamos a trabajar

Cita:
Hoja := Libro.Sheets[1] as _WORKSHEET;
7) Luego agregamos este código:

Cita:
with Query1 do
begin
first;
while not EOF Do
begin
i:=i+1;
Hoja.Cells.Item[i,1]:=DBGrid1.Fields[0].AsString;
Hoja.Cells.Item[i,2]:=DBGrid1.Fields[1].AsString;
Hoja.Cells.Item[i,3]:=DBGrid1.Fields[2].AsString;
Hoja.Cells.Item[i,4]:=DBGrid1.Fields[3].AsString;
Hoja.Cells.Item[i,5]:=DBGrid1.Fields[4].AsString;
Hoja.Cells.Item[i,6]:=DBGrid1.Fields[5].AsString;
Hoja.Cells.Item[i,7]:=DBGrid1.Fields[6].AsString;
Hoja.Cells.Item[i,8]:=DBGrid1.Fields[7].AsString;
Hoja.Cells.Item[i,9]:=DBGrid1.Fields[8].AsString;
Hoja.Cells.Item[i,10]:=DBGrid1.Fields[9].AsString;
Next;
end;//while
end;//with

8) ahora pedimos que el libro que ahora está listo se abra y muestre los datos que agregamos

Cita:
ExcelApplication1.Visible[1]:=true;

Nuestro código final nos queda asi:
Cita:
procedure TForm14.Button1Click(Sender: TObject);
var
Libro : _WORKBOOK;
Hoja : _WORKSHEET;
i:Integer;
begin
i:=2;
Libro := ExcelApplication1.Workbooks.Add(Null, 0);
Hoja := Libro.Sheets[1] as _WORKSHEET;
Hoja.Cells.Item[1,1]:='Reporte';
Hoja.Cells.Item[1,1].Font.Bold:=True;
with Query1 do
begin
first;
while not EOF Do
begin
i:=i+1;
Hoja.Cells.Item[i,1]:=DBGrid1.Fields[0].AsString;
Hoja.Cells.Item[i,2]:=DBGrid1.Fields[1].AsString;
Hoja.Cells.Item[i,3]:=DBGrid1.Fields[2].AsString;
Hoja.Cells.Item[i,4]:=DBGrid1.Fields[3].AsString;
Hoja.Cells.Item[i,5]:=DBGrid1.Fields[4].AsString;
Hoja.Cells.Item[i,6]:=DBGrid1.Fields[5].AsString;
Hoja.Cells.Item[i,7]:=DBGrid1.Fields[6].AsString;
Hoja.Cells.Item[i,8]:=DBGrid1.Fields[7].AsString;
Hoja.Cells.Item[i,9]:=DBGrid1.Fields[8].AsString;
Hoja.Cells.Item[i,10]:=DBGrid1.Fields[9].AsString;
Next;
end;//while
end;//with
ExcelApplication1.Visible[1]:=true;
end;
poco a poco lo van mejorando y eso

con Hoja.Cells.Item encuentran funciones de Negrita Italic y cosas aplicables a las celdas

Espero que les sirva de algo
__________________
Las cosas o son, o no son...
Responder Con Cita