PDA

Ver la Versión Completa : exportar dbgrid a excel


stuka
03-07-2006, 23:31:06
pues como lo dice el titulo, quiero pasar la informacion que contiene el dbgrid a excel pero no tengo ni idea de como se hace, alguna sugerencia? o algun documento donde me las bases para trabajar, trabajo con delphi 7 e interbase, de antemano gracias.

Saludos

delphi.com.ar
03-07-2006, 23:35:00
No es el método mas tradicional, pero si te interesa puedes bajar de mi página los componentes llamados "Firesoft ExportSuite" que los diseñé con ese propósito. Como ventaja, puedo decirte que genera el archivo utilizando 100% código nativo, sin necesidad de tener Excel instalado y sin preocuparte por los problemas entre versiones y a una velocidad mucho mayor que utilizando el mismo excel. Como desventaja puedo decirte que fueron concebidos como herramientas básicas y funcionales, sin lujos por lo que no podrás formatear demasiado "a gusto" el archivo generado.

Saludos!

marcoszorrilla
03-07-2006, 23:35:55
Mira este truco (http://www.clubdelphi.com/trucos/index.php?id=77&scroll=0&scrollb=0), de la sección trucos del club.

Un Saludo.

stuka
04-07-2006, 16:23:41
muchas gracias chekare los 2 a ver cual es el mas se adapta (o el mas sencillo de usar) y gracias de nuevo, no se que haria sin este foro dios mio:D

marcoszorrilla
04-07-2006, 20:50:11
Esto lo hice la semana pasada, aquí tienes otro ejemplo:

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, ExtCtrls, StdCtrls, Buttons, DBCtrls, ComCtrls, Db, ComObj;
...........
procedure TfrConReguRegional.SpToExcelClick(Sender: TObject);
var
excel:Variant;
fila,columna:Integer;
Data : TDataSet;
MyDataSet:TDataSet;

begin
try
excel:=CreateOleObject('Excel.Application');
except
ShowMessage('Excel no se pudo iniciar.');
exit;
end;
excel.Visible:=true;

Data:=Reja.DataSource.DataSet;
Data.First;
fila:=1;
columna:=1;
excel.Workbooks.Add;

//Poner los títulos
{for columna := 0 to Reja.Columns.Count-1 do
begin
excel.Cells[fila,columna + 1].Value:=Reja.Columns[columna].FieldName;
end;}

//solamente hay 6 columnas pongo los nombres a mano
excel.Cells[fila, 1].Value:='Orden';
excel.Cells[fila, 2].Value:='Licencia';
excel.Cells[fila, 3].Value:='Columna3';
excel.Cells[fila, 4].Value:='Club';
excel.Cells[fila, 5].Value:='Columna4';
excel.Cells[fila, 6].Value:='Puntos';


fila:=2;

//Desengachar controles para agilizar
DmPal.DatPal.DisableControls;

try
while not(Data.eof) do
begin

for columna := 0 to Reja.Columns.Count-1 do
begin

if columna < 4 then
Excel.Cells[fila,columna + 1].Value:=Data.FieldByName(Reja.Columns[Columna].FieldName).AsString;

if columna > 3 then
begin
excel.Cells[fila,columna + 1].Value:=Data.FieldByName(Reja.Columns[columna].FieldName).AsFloat;
excel.Cells[fila,columna + 1].NumberFormat:= ',0.00';
end;

end;
Data.Next;
fila:= fila + 1;
end;
//Ajustar columnas
for columna:=1 to 11 do
begin
Excel.Columns[Columna].EntireColumn.AutoFit;
end;

Except
ShowMessage('Atención, se produjo un error en la transmisión.');
end;

DmPal.DatPal.EnableControls;
end;

Un Saludo.

mguixot
20-07-2006, 12:10:28
Hola a tod@s,

respecto al ejemplo anterior, cómo puedo guardar el fichero Excel que acabamos de generar? He probado el método SAVETOFILE, pero no está soportado con el objeto creado.

Saludos

mguixot
20-07-2006, 12:21:51
Hola de nuevo,

que posibilidades tengo de hacer algo similar a generar un documento .xls, pero sin tener instalado MS Excel. Es decir, tengo instalado OpenOffice.

Saludos

delphi.com.ar
21-07-2006, 00:16:33
que posibilidades tengo de hacer algo similar a generar un documento .xls, pero sin tener instalado MS Excel. Es decir, tengo instalado OpenOffice.
Que te parece esta posibilidad comentada en el mismo hilo:
No es el método mas tradicional, pero si te interesa puedes bajar de mi página los componentes llamados "Firesoft ExportSuite" que los diseñé con ese propósito. Como ventaja, puedo decirte que genera el archivo utilizando 100% código nativo, sin necesidad de tener Excel instalado y sin preocuparte por los problemas entre versiones y a una velocidad mucho mayor que utilizando el mismo excel. Como desventaja puedo decirte que fueron concebidos como herramientas básicas y funcionales, sin lujos por lo que no podrás formatear demasiado "a gusto" el archivo generado.

Saludos!