Cita:
Empezado por magmarcelli
Hola, me piden exportar los datos que hayan en un cxGrid a Excel pero no se como hacerlo, soy principiante en delphi por lo que no me manejo mucho. Que componentes debo utilizar? si alguien tuviese un ejemplo con código se lo agradecería mucho Saludos.
|
Es sencillo.
Supongamos que tu cxgrid se llama
DBGrid1 y en ella tienes 3 campos:
No, Nóminas, Cuentas.
Solo tienes que agregar un componente llamado
ExcelApplication el cual está en la paleta
Servers y en un botón pones este código:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
Libro : _WORKBOOK;
Hoja : _WORKSHEET;
i:Integer;
begin
i:=0;
Libro := Excel.Workbooks.Add(Null, 0);
Hoja := Libro.Sheets[1] as _WORKSHEET;
i:=i+1;
Hoja.Range['A'+inttostr(i),'I'+inttostr(i)].Font.Bold := True; Hoja.Cells.Item[i,1]:='No';
Hoja.Cells.Item[i,2]:='Nóminas';
Hoja.Cells.Item[i,3]:='Cuentas';
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;
Next;
end;end;
Excel.Visible[0] := true;
end;
Si te fijas, en estas lineas se agrega el titulo o nombre de los campos:
Código Delphi
[-]Hoja.Cells.Item[i,1]:='No';
Hoja.Cells.Item[i,2]:='Nóminas';
Hoja.Cells.Item[i,3]:='Cuentas';
y en la siguiente se le pasan los campos que están en el grid a las celdas de excel:
Código Delphi
[-]
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;
Si tuvieras mas campos solo debes aumentar el número que está dentro de los paréntesis de color rojo:
Código Delphi
[-]Hoja.Cells.Item[i,3]:=DBGrid1.Fields[2].AsString;
Saludos