Ver Mensaje Individual
  #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.043
Reputación: 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