PDA

Ver la Versión Completa : Exportar desde BDE a Excel


tamara
03-10-2003, 18:11:41
Hola a todos:

Por favor alguien me podria ayudar:

Necesito exportar una tabla o un query desde deplhi 3 a un archivo en Excel, como puedo hacerlo ??


Gracias


Tamara

marcoszorrilla
03-10-2003, 23:05:02
Primero: has hecho la pregunta en 3 Foros, por lo que del de Varios la he borrado, cuando leas la solución que te propongo entre otras posibles, convendría que leyeras la Guia de estilo de los Foros en donde se habla de este caso, es decir la pregunta ha de ponerse solamente en un foro:


Pon en el Uses de tu Form ComObj
Y desde una rejilla en donde estás visualizando los datos.

procedure TfrConFacturas.SpeedButton4Click(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:=DbGrid1.DataSource.DataSet;
Data.First;
fila:=1;
columna:=1;
excel.Workbooks.Add;

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

fila:=2;

//Desengachar controles para agilizar
DmXxx.Factura.DisableControls;
DmXxx.HLinalbaF.DisableControls;
try
while not(Data.eof) do
begin

for columna := 0 to DbGrid1.Columns.Count-1 do
begin
if (columna < 4) or (Columna > 19) then
excel.Cells[fila,columna + 1].Value:=Data.FieldByName(DbGrid1.Columns[columna].FieldName).asString
else
excel.Cells[fila,columna + 1].Value:=Data.FieldByName(DbGrid1.Columns[columna].FieldName).asFloat;
end;
Data.Next;
fila:= fila + 1;
end;
Except
ShowMessage('Atención, se produjo un error en la transmisión.');
end;
DmXxx.Factura.EnableControls;
DmXxx.HLinalbaF.EnableControls;

end;


Un Saludo.