Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-07-2023
muli muli is offline
Miembro
 
Registrado: jun 2003
Ubicación: A Coruña
Posts: 193
Poder: 21
muli Va por buen camino
Componente Exportacion a Excel desde un DBGrid

Hola, desde hace años uso un componente para exportar a excel lo que el usuario ve en un dbgrid, la verdad es que es muy comodo ya que haces la consulta, la muestras y si el usuario quiere un listado de solo lo que en el grid pues se lo lanzo a excel y listo. Este componente se llama DBGrid2Excel está en la página https://www.nika-soft.com/download/, lo que pasa es que el propietario ya no está haciendo versiones para los nuevos delphi, a mi hasta ahora con Rio me funcionaba perfectamente, pero al querer ponerlo en alexandría me arroja el siguiente error: [dcc32 Error] xlsblob.pas(166): E2010 Incompatible types: 'PAnsiChar' and 'PWideChar', supongo que tendré que ir por todas las unidades cambiando las funciones donde se encuentran estos tipos, no habrá otra forma de actualizar la unidad si tener que cambiar estas funciones, veo que usa sysutils,y windows, a lo mejor en este ultimo delphi cambió la unidad donde se encuentran estos tipos, no se, es solo por si alguien le pasó lo mismo y lo hizo de otra forma.
Saludos.
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE.
Responder Con Cita
  #2  
Antiguo 24-07-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ese componente veo que viene en un ".exe", por lo que deduzco que no tienes acceso al código fuente.
Si vienen los fuentes entonces puedes "retocarlo" para solucionar ese problemilla, en caso contrario estás perdido sin acceso al código fuente.
De todas formas, aquí tienes un ejemplo de cómo guardar de un dbgrid a excel, prueba:


Cita:
Para exportar un `DBGrid` a Excel usando Delphi, necesitas utilizar el componente `TExcelApplication` de la librería Excel que proporciona Delphi. Asegúrate de tener instalado Microsoft Excel en tu máquina para que funcione correctamente.

Aquí tienes un ejemplo paso a paso de cómo hacerlo:

1. Abre tu proyecto de Delphi y asegúrate de que tienes el componente `TDBGrid` configurado correctamente para mostrar los datos que deseas exportar a Excel.

2. Asegúrate de que la unidad `ComObj` esté incluida en los usos de tu formulario. Esto te permitirá trabajar con objetos COM.

3. Asegúrate también de que tienes agregada la referencia a la librería Excel en tu proyecto. Para ello, ve al menú "Project" y selecciona "Import Type Library". Busca "Microsoft Excel" en la lista de bibliotecas disponibles y selecciona la versión que tengas instalada en tu sistema.

4. A continuación, añade un componente `TExcelApplication` a tu formulario. Puedes encontrarlo en la paleta "ActiveX".

5. Ahora, necesitas escribir el código para exportar los datos del `DBGrid` a Excel. Puedes hacerlo en el evento de un botón o cualquier otro evento adecuado para tu aplicación. Aquí tienes un ejemplo que muestra cómo hacerlo en el evento `OnClick` de un botón:
Código Delphi [-]
uses
  ComObj;

procedure TForm1.ButtonExportToExcelClick(Sender: TObject);
var
  ExcelApp: Variant;
  i, j: Integer;
begin
  try
    ExcelApp := CreateOleObject('Excel.Application');
    ExcelApp.Workbooks.Add;
    ExcelApp.Visible := True;

    // Exportar los títulos de las columnas del DBGrid
    for i := 0 to DBGrid1.Columns.Count - 1 do
    begin
      ExcelApp.Cells[1, i + 1].Value := DBGrid1.Columns[i].Title.Caption;
    end;

    // Exportar los datos del DBGrid
    for i := 0 to DBGrid1.DataSource.DataSet.RecordCount - 1 do
    begin
      DBGrid1.DataSource.DataSet.RecNo := i + 1;
      for j := 0 to DBGrid1.Columns.Count - 1 do
      begin
        ExcelApp.Cells[i + 2, j + 1].Value := DBGrid1.Fields[j].AsString;
      end;
    end;

    ShowMessage('Datos exportados correctamente a Excel.');
  except
    on E: Exception do
      ShowMessage('Error al exportar a Excel: ' + E.Message);
  end;
end;
Cita:
En este ejemplo, se utiliza el objeto `ExcelApp` para interactuar con Excel y se agregan los datos del `DBGrid` a una hoja de cálculo de Excel.

Recuerda que este código es solo un ejemplo y puede requerir ajustes según las características específicas de tu aplicación y el manejo de los datos en el `DBGrid`. También es importante considerar el manejo de errores y realizar pruebas exhaustivas para asegurarse de que todo funcione correctamente.
Responder Con Cita
  #3  
Antiguo 24-07-2023
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola, te recomiendo Excel4Delphi. Te permite generar archivos XLSX sin necesidad de tener instalado Excel.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
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
Optimización en exportación a Excel novato_erick Impresión 8 29-03-2022 21:54:52
FastReport y exportación a Excel Aitrus Impresión 3 14-04-2016 22:35:27
exportacion de access a excel luxus Conexión con bases de datos 3 15-04-2008 20:30:59
problemilla con la exportación a excel Apetelinau Conexión con bases de datos 2 07-03-2007 22:59:48
Exportacion a Excel incorrecta jfloro Servers 4 19-09-2003 08:48:36


La franja horaria es GMT +2. Ahora son las 12:29:02.


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