Ver Mensaje Individual
  #2  
Antiguo 25-02-2015
Avatar de jeremiselxi
jeremiselxi jeremiselxi is offline
Miembro
 
Registrado: ago 2008
Posts: 199
Reputación: 16
jeremiselxi Va por buen camino
Cita:
Empezado por magmarcelli Ver Mensaje
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;

//titulo
i:=i+1;

Hoja.Range['A'+inttostr(i),'I'+inttostr(i)].Font.Bold := True; //Pone el texto en negrita
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;//while
end;//with


  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
__________________
Cristo te ama, ven a d él, ya k te espera con los brazos abiertos. Dios te bendiga mucho
Responder Con Cita