Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error al crear archivo de excel con delphi (https://www.clubdelphi.com/foros/showthread.php?t=69555)

lduron 25-08-2010 15:58:48

Error al crear archivo de excel con delphi
 
Creo un archivo de excel con el siguiente código:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
Excel97, comObj;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Excel: OleVariant;
Libro: OleVariant;
Hoja: OleVariant;
begin
Excel := ComObj.CreateOleObject('Excel.Application');
Libro := Excel.WorkBooks.Add;
Hoja := Libro.ActiveSheet;
Hoja.Cells[1, 1] := 'PRUEBA';
Libro.SaveAs('c:\prueba.xls');
Excel.Quit;
end;
end.


Al querer abrir el office 2007 me da un error:

El archivo que intenta abrir "prueba.xls", tiene otro formato que el especificado por la extensión de archivo. Compruebe que el archivo no este dañado y procede de un origen de confianza antes de abrirlo. ¿Desea abrir el archivo ahora? Lo abro y lo veo bien, pero en el office 2003 lo abro y pone codigo no legible. Y lo necesito abrir en el office 2003.

Como lo puedo resolver?

Muchas Gracias!

Saludos!

luisdevis 25-08-2010 23:00:17

No uses Excel97 ni OleVariant
 
Yo no uso la libreria Excel97, sólo la comobj.
Y no defino las variables como OleVariant sino simplemente como Variant y me funciona perfectamente.

Prueba a hacer lo mismo... ;)

lduron 26-08-2010 16:02:29

Hola LuisDevis!

Muchas Gracias por ayudarme. Fíjate que lo hice de la siguiente manera:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, comObj, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Excel: Variant;
Libro: Variant;
Hoja: Variant;
begin
Excel := ComObj.CreateOleObject('Excel.Application');
Libro := Excel.WorkBooks.Add;
Hoja := Libro.ActiveSheet;
Hoja.Cells[1, 1] := 'PRUEBA';
Libro.SaveAs('c:\prueba.xls');
Excel.Quit;
end;
end.

Y aún con esto me sigue marcando lo mismo...no se que pasa?


La franja horaria es GMT +2. Ahora son las 21:33:44.

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