Ver Mensaje Individual
  #4  
Antiguo 05-04-2016
mramos65 mramos65 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Mèxico
Posts: 26
Reputación: 0
mramos65 Va por buen camino
Thumbs up Nombre de DBGrid (Activo) para exportar datos a Excell

Realice una funcion con los parametros TDbgrid y Tquery
Declarando en
Type
procedure ExpExcell(grid: tdbgrid; base: tquery);
Luego en
Implementation

Código Delphi [-]
procedure TForm1.ExpExcell(grid: tdbgrid; base: tquery); //Donde  Grid sera el nombre del Dbgrid seleccionado y base El query origen de los datos
 var
  excel:Variant;
  fila, columna:Integer;
begin
  with base, base.SQL do
    begin
      Close;
      Open;
      if IsEmpty then
        begin
          MessageDlg('No existen datos que reportar!', mtWarning,[mbOk], 0);
          Exit;
        end;
      TRY
        excel := CreateOleObject('Excel.Application');
      EXCEPT
        ShowMessage('Excel no se pudo iniciar.');
        exit;
      END;
      excel.Visible := true;
      First;
      fila          := 1;
      excel.Workbooks.Add;
      //Poner los títulos
      for columna := 0 to Grid.Columns.Count-1 do
        excel.Cells[fila,columna + 1].Value := Grid.Columns[columna].Title.Caption;
      fila:=2;
      //Desengachar controles para agilizar
      DisableControls;
      TRY
        while not(eof) do
          begin
            for columna := 0 to Grid.Columns.Count-1 do
              excel.Cells[fila,columna + 1].Value := FieldByName(Grid.Columns[columna].FieldName).asString;
            Next;
            inc(fila);
          end;
        //Ajustar columnas
        for columna:=1 to Grid.Columns.Count-1 do
        begin
        Excel.Columns[Columna].EntireColumn.AutoFit;
        end;

      EXCEPT
        ShowMessage('Atención, se produjo un error en la transmisión.');
      END;
      EnableControls;
    end;
end;
Debo mencionar que este procedimiento es autoria de otro usuario, solo modifique los parametros para realizar un procedimiento adaptable a mi necesidad.
y por ultimo llamando el procedimiento asi:
Código Delphi [-]
procedure Tform1.ExportaraExcell1Click(Sender: TObject);
begin
ExpExcell(DbGrid,TQuery);
end;
Esperando sea de utilidad para otros usuarios, GRACIAS
Responder Con Cita