Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Guardar archivo excel desde delphi (https://www.clubdelphi.com/foros/showthread.php?t=17190)

rruffino 28-12-2004 04:52:34

Guardar archivo excel desde delphi
 
Hola amigos. Dispongo de un cuadro de Dialogo para guardar y una planilla en excel.Mi idea es poder utilizar la caja de dialogo para que el usuario indique el nombre y la ruta donde se guardara la planilla y que al hacer click en guardar esta se guarde automaticamente con los datos que ingreso el usuario. Les agradezco mucho su ayuda:)
Saludos, Román

Neftali [Germán.Estévez] 28-12-2004 09:33:02

Revisa ésta página, ahí tiene descritas las operaciones más importantes que se pueden hacer con una hoja de Excel desde Delphi (abrir, cerrar, grabar,...)

http://www.djpate.freeserve.co.uk/AutoExcl.htm

Otra opción es buscar "Excel Delphi" en los foros, y encontrarás bastantes mensajes sobre el tema.

rruffino 28-12-2004 17:51:34

Sigo igual!
 
Oye amigo, gracias por tu ayuda pero sigo sin poder guardar la planilla quwe creo. Yo lo hago mediante una variable Variant a al cual le asigno la creacion de un objeto ole. Luego le agrego un workbook y lleno el contenido de las celdas VariableOle.Libro.Celdas(x,y). Tengo una caja de dialogo para guardar de la que deberia tomar el nombre que el usuario ingresa y guardar la planilla generada previamente. He probado varias cosas que he encontraqdo en los foros pero no puede dar en la tecla. Todo lo demas sale bien, es decir que la planilla es creada correctamente, y puedo darle nombre con el cual la quiero guardar, pero lamentablemente no puedo guardarla.-
Espero puedas ayudarme;)

Neftali [Germán.Estévez] 29-12-2004 10:20:40

Pon el código delphi que utilizas, así podemos echarle un vistazo y revisarlo.

rruffino 29-12-2004 14:10:36

Aqui va el codigo
 
Bueno, tal como pediste te pongo el codigo a ver si puedes darme una mano. Espero puedas ayudarme y desde ya mil gracias.-;)

procedure TForm_excel.BitBtn_bajarClick(Sender: TObject);
var
Excel, Libro: Variant;
i: integer;
Nombre: string;
begin
try
Guardar_planilla.Execute;
if (Guardar_planilla.FileName<>'') then
begin

Excel:=CreateOleObject('Excel.Application');
Excel.Visible := True;
Nombre:=Guardar_planilla.FileName;
Excel.DisplayAlerts:=false;

//Comienzo a llenar las celdas
Excel.WorkBooks.Add();
Excel.WorkBooks[1].WorkSheets[1].Name := 'Reporte';
Libro := Excel.WorkBooks[1].WorkSheets['Reporte'];
DM.IBQuery_cob.SQL.Clear;
DM.IBQuery_cob.SQL.Add('select * from cobranza where periodo='+intToStr(DM.IBDataSet_periodoID_PERIODO.Value)+'order by fecha');
DM.IBQuery_cob.Open;
DM.IBQuery_cob.First;
i:=1;
while not (DM.IBQuery_cob.Eof) do
begin
Libro.Cells [i,1] := DM.IBQuery_cobFECHA.Value;
Libro.Cells [i,2] := DM.IBQuery_cobCONCEPTO.Value;
i:=i+1;
DM.IBQuery_cob.Next;
end;
DM.IBQuery_cob.Close;
//Acá es donde salta el error de que no soporta este metodo pero no hallo otro
Excel.SaveAs(Nombre,Null,Null,Null,false,false,xlNoChange,xlUserResolution,false,Null,Null,0);
end;
except
Excel.Quit;
showmessage('No se pudo crear el Objecto Excel.');
raise;
end;
end
;

Neftali [Germán.Estévez] 29-12-2004 16:39:42

Cita:

Empezado por rruffino
..Espero puedas ayudarme y desde ya mil gracias.

Código Delphi [-]
 ...
 //Acá es donde salta el error 
       Excel.SaveAs(Nombre,Null,Null,Null,false,false,xlNoChange,xlUserResolution,false,Null,Null,0);

En lugar de la línea que te da el error usa simplemente:

Código Delphi [-]
   Libro.SaveAs(NombreNuevo);

rruffino 03-01-2005 21:19:54

Gracias
 
Neftali, gracias por la ayuda que me has dado, en ralidad se me soluciono el problema.:p
Román

MARLON1 01-02-2008 18:20:32

Hola
 
Cita:

Empezado por rruffino (Mensaje 73580)
Bueno, tal como pediste te pongo el codigo a ver si puedes darme una mano. Espero puedas ayudarme y desde ya mil gracias.-;)

procedure TForm_excel.BitBtn_bajarClick(Sender: TObject);
var
Excel, Libro: Variant;
i: integer;
Nombre: string;
begin
try
Guardar_planilla.Execute;
if (Guardar_planilla.FileName<>'') then
begin
Excel:=CreateOleObject('Excel.Application');
Excel.Visible := True;
Nombre:=Guardar_planilla.FileName;
Excel.DisplayAlerts:=false;

//Comienzo a llenar las celdas
Excel.WorkBooks.Add();
Excel.WorkBooks[1].WorkSheets[1].Name := 'Reporte';
Libro := Excel.WorkBooks[1].WorkSheets['Reporte'];
DM.IBQuery_cob.SQL.Clear;
DM.IBQuery_cob.SQL.Add('select * from cobranza where periodo='+intToStr(DM.IBDataSet_periodoID_PERIODO.Value)+'order by fecha');
DM.IBQuery_cob.Open;
DM.IBQuery_cob.First;
i:=1;
while not (DM.IBQuery_cob.Eof) do
begin
Libro.Cells [i,1] := DM.IBQuery_cobFECHA.Value;
Libro.Cells [i,2] := DM.IBQuery_cobCONCEPTO.Value;
i:=i+1;
DM.IBQuery_cob.Next;
end;
DM.IBQuery_cob.Close;
//Acá es donde salta el error de que no soporta este metodo pero no hallo otro
Excel.SaveAs(Nombre,Null,Null,Null,false,false,xlNoChange,xlUserResolution,false,Null,Null,0);
end;
except
Excel.Quit;
showmessage('No se pudo crear el Objecto Excel.');
raise;
end;
end;

hola:
me podrias ayudar? quiero hacer lo mismo que pero no tengo idea de como hacerlo, hasta ahora con la ayuda del foro solo puedo cargar datos de un archivo .xls en un dbgrid en mi aplicacion, pero lo que quiero hacer es que los datos que tengo en el archivo .xls se almacenen en la tabla cliente que ya tiene definidos los campos (clavecliente,nombre,dir,tel,...), espero ke me puedas hechar una mano uso delphi 6 y sql. estoy utilizando ADO, MIL GRACIAS


La franja horaria es GMT +2. Ahora son las 11:07:08.

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