Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Tutorial Paso a Paso Exportación de datos de TQuery a Excel (https://www.clubdelphi.com/foros/showthread.php?t=61397)

lKinGl 06-11-2008 00:10:07

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 :D

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 ;)


La franja horaria es GMT +2. Ahora son las 03:30:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi