Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Exportar desde BDE a Excel (https://www.clubdelphi.com/foros/showthread.php?t=4279)

tamara 03-10-2003 18:11:41

Exportar desde BDE a Excel
 
Hola a todos:

Por favor alguien me podria ayudar:

Necesito exportar una tabla o un query desde deplhi 3 a un archivo en Excel, como puedo hacerlo ??


Gracias


Tamara

marcoszorrilla 03-10-2003 23:05:02

Primero: has hecho la pregunta en 3 Foros, por lo que del de Varios la he borrado, cuando leas la solución que te propongo entre otras posibles, convendría que leyeras la Guia de estilo de los Foros en donde se habla de este caso, es decir la pregunta ha de ponerse solamente en un foro:


Pon en el Uses de tu Form ComObj
Y desde una rejilla en donde estás visualizando los datos.

Código:

procedure TfrConFacturas.SpeedButton4Click(Sender: TObject);
 var
  excel:Variant;
  fila,columna:Integer;
  Data : TDataSet;
  MyDataSet:TDataSet;
 
begin
  try
    excel:=CreateOleObject('Excel.Application');
  except
    ShowMessage('Excel no se pudo iniciar.');
    exit;
  end;
  excel.Visible:=true;

    Data:=DbGrid1.DataSource.DataSet;
        Data.First;
        fila:=1;
        columna:=1;
          excel.Workbooks.Add;

          //Poner los títulos
          for columna := 0 to DbGrid1.Columns.Count-1 do
          begin
          excel.Cells[fila,columna + 1].Value:=DbGrid1.Columns[columna].FieldName;
          end;

          fila:=2;

        //Desengachar controles para agilizar
        DmXxx.Factura.DisableControls;
        DmXxx.HLinalbaF.DisableControls;
        try
          while not(Data.eof) do
            begin

            for columna := 0 to DbGrid1.Columns.Count-1 do
            begin
              if (columna < 4) or (Columna > 19) then
            excel.Cells[fila,columna + 1].Value:=Data.FieldByName(DbGrid1.Columns[columna].FieldName).asString
              else
              excel.Cells[fila,columna + 1].Value:=Data.FieldByName(DbGrid1.Columns[columna].FieldName).asFloat;
            end;
              Data.Next;
              fila:= fila + 1;
            end;
        Except
        ShowMessage('Atención, se produjo un error en la transmisión.');
        end;
        DmXxx.Factura.EnableControls;
        DmXxx.HLinalbaF.EnableControls;

end;


Un Saludo.


La franja horaria es GMT +2. Ahora son las 10:43:18.

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