Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-11-2007
jocey jocey is offline
Miembro
 
Registrado: ene 2007
Posts: 111
Poder: 18
jocey Va por buen camino
Exportar a Excel

Hola mis amigos, tengo unn proyecto que trabaja con una base de datos en Access, como puedo desde access, exportar una tabla de esa base de datos a excel
Responder Con Cita
  #2  
Antiguo 21-11-2007
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Prueba esto a ver si es lo que buscas


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( Tform, form) ;
  With form do
  try
        Show;
        Screen.Cursor := crHourGlass;
        // Creamos el objeto de automatización OLE
        try
          Excel := CreateOleObject( 'Excel.Application');
          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;
__________________
Web

Última edición por marcoszorrilla fecha: 13-12-2007 a las 21:21:37. Razón: Etiquetas Delphi
Responder Con Cita
  #3  
Antiguo 13-12-2007
Avatar de courtois
courtois courtois is offline
Miembro
 
Registrado: abr 2006
Ubicación: Mexico DF
Posts: 200
Poder: 19
courtois Va por buen camino
La, cuando son muchos datos, forma mas veloz podria ser usando ISAM desde una consulta asi

Código SQL [-]
  SELECT campos INTO [Excel 8.0;DataBase=Archivo.xls].[Hoja] FROM Tabla

Esto te crea a "archivo.xls" con una "hoja" en la cual estan los datos de la consulta hecha

Saludos
Responder Con Cita
  #4  
Antiguo 28-10-2008
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
Cita:
Empezado por courtois Ver Mensaje
La, cuando son muchos datos, forma mas veloz podria ser usando ISAM desde una consulta asi


Código SQL [-]
SELECT campos INTO [Excel 8.0;DataBase=Archivo.xls].[Hoja] FROM Tabla





Esto te crea a "archivo.xls" con una "hoja" en la cual estan los datos de la consulta hecha

Saludos


/// HOLA, PORFAVOR PODRIAS SER MAS ESPECIFICO, ES QUE LA VERDAD ME PARECE MUCHO CODIGO LA RESPUESTA Q AUNQUE ESTE BIEN LA DEL PARTICIPANTE ANTERIOR, EN OTROS PALABRAS DESCRIBE EL PROCEDIMIENTO PARA LOGRAR LO Q DICES


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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Exportar a excel raf.rsr Servers 42 08-05-2012 20:35:16
Exportar a excel... BuenaOnda Varios 3 20-08-2007 08:55:07
Exportar a Excel erasmorc OOP 4 04-08-2006 15:03:50
Exportar a Excel Danielle Impresión 0 16-06-2006 18:04:55
Exportar .gdb a Excel Novata2006 Firebird e Interbase 0 16-05-2006 10:52:08


La franja horaria es GMT +2. Ahora son las 17:54:57.


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