Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-01-2007
Avatar de dandia28
dandia28 dandia28 is offline
Miembro
 
Registrado: dic 2005
Ubicación: Uruguay
Posts: 39
Poder: 0
dandia28 Va por buen camino
Exportar a Excel de forma sencilla, sin componentes

Es una función que recibe por parametros un dataset y un nombre de archivo:

Código Delphi [-]
procedure ExportarExcel( DataSet:TDataSet ; cNomArchivo: string);
var
  Excel: variant;      // Aplicación Excel
  Libro: variant;      // Libro de trabajo
  Hoja: variant;       // Hoja de cálculo
  fila, columna, campo: integer;
  marca: string;
begin
  Application. CreateForm( TfrmAnimacion, frmAnimacion) ;
  With frmAnimacion do
  try
        Show;
        Screen.Cursor := crHourGlass;
        // Creamos el objeto de automatizació n OLE
        try
          Excel := CreateOleObject( 'Excel.Applicati on');
          try
            Excel.visible := False;

            // Creamos un nuevo libro de trabajo
            Excel.SheetsInNewWo rkbook := 1;
            Libro := Excel.WorkBooks. Add;

            // Obtenemos una referencia a la página del libro
            Hoja := Libro.WorkSheets[ 1];

            with DataSet do begin
              // Recorremos los campos para poner sus nombres como
              // encabezado en la primera fila
              fila := 1;
              columna := 1;
              for campo := 0 to FieldCount - 1 do
                with Fields[campo] do
                  begin
                     //if Visible then begin // Sólo se incluyen los campos visibles
                       Hoja.Cells[fila, columna] := DisplayName;
                       Inc(columna) ;
                     //end;
                  end;
              Hoja.Rows[fila] .Font.Bold := True;

              //Screen.Cursor := crHourglass;   // cambio a reloj arena
              DisableControls;

              try
                Marca:= Dataset.Bookmark;  // guardo donde estaba el dataset
                First;
                // Recorremos los registros del dataset
                while not Eof do begin
                  Inc(fila);     // Cada registro va en una nueva fila
                  columna := 1;
                  // Recorremos los campos para ir llenando las celdas de la fila
                  for campo := 0 to FieldCount - 1 do
                    with Fields[campo] do begin
                      //if Visible then begin // Sólo se incluyen los campos visibles
                        if not IsNull then  // Si el valor es nulo, no lo asignamos
                          if DataType = ftString then
                            Hoja.Cells[fila, columna] := '''' + AsString
                          else
                            try
                              Hoja.Cells[fila, columna] := Value;
                            except
                              Hoja.Cells[fila, columna] := DisplayText;
                            end;
                        Inc(columna) ;
                      //end;
                    end;
                  Next; // Avanzamos al siguiente registro
                end;

              finally
                Dataset.Bookmark := Marca;  // dejo el dataset donde estaba
                EnableControls;
              end;
            end;

          finally
            try Hoja.Cells.Columns. AutoFit; except end;  // Autoajuste
            //Excel.Visible :== True; // Mostramos el Excel
            // Grabamos el archivo
            Libro.saveas( cNomArchivo) ;
            Excel.quit ;
            Screen.Cursor := crDefault;
          end;

        except
           Application. MessageBox( 'Excel no se encuentra instalado en este equipo, no se puede exportar','Error' ,mb_OK + mb_IconExclamation) ;
        end;
  finally
        Free;
  end;

end;
Saludos, Daniel de Uruguay

Responder Con Cita
  #2  
Antiguo 08-01-2007
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
¿Podrías poner el código con etiquetas? Así se vería mejor el código, gracias!
Responder Con Cita
  #3  
Antiguo 16-02-2007
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
Bueno Dandia28!

En mi opinion personal no creo que esto sea mas sensillo que instalar un control.

Puedo recomendar los controles Firesoft Export Suite, que Exportan en TXT, DBF, XLS, WK1 y HTML. Para complicarse inventando la rueda. ahora si quieren aprender como a hacerlo de cero, tambien encontraran el codigo.

Entra en http://www.delphi.com.ar/ y busca el link de componentes.


Responder Con Cita
  #4  
Antiguo 20-04-2007
Avatar de dandia28
dandia28 dandia28 is offline
Miembro
 
Registrado: dic 2005
Ubicación: Uruguay
Posts: 39
Poder: 0
dandia28 Va por buen camino
Es cierto ese componente es interesante! yo lo descubri despues de haber publicado mi truco... pero bueno fue antes de saber de este componente, la idea era compartir el mismo!

bye.
Responder Con Cita
  #5  
Antiguo 09-04-2008
Palmiro Palmiro is offline
Miembro
 
Registrado: oct 2005
Ubicación: Argentina - Chaco
Posts: 57
Poder: 19
Palmiro Va por buen camino
Maravillos el truco, me fue muy útil...
Muchas gracias...
Responder Con Cita
  #6  
Antiguo 05-06-2008
Arturo Ocampo Arturo Ocampo is offline
Registrado
 
Registrado: may 2006
Posts: 1
Poder: 0
Arturo Ocampo Va por buen camino
Excelente Truco. Muy Util. Muchas Gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:01:26.


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
Copyright 1996-2007 Club Delphi