急!打开Excel文件有时会发生打不开现象?(100分)

  • 主题发起人 主题发起人 ychb
  • 开始时间 开始时间
Y

ychb

Unregistered / Unconfirmed
GUEST, unregistred user!
问题:
启动程序,然后打开18个Excel文件,将他们导入到后台数据库中,当我第二次打开上次打开的
Excel文件时,系统提示:文件无法打开,微软安装程序错误!我关闭错误提示,按F9键会出现
内存地址只读,还有一个“可以打开文件提示在错误的后面”!
提示的错误代码是:xworkbook := ExcelApp.Workbooks.open(fullpath + filename +'.xls');
我猜想是创建的对象没有真正被关闭,但是这种直接创建的不支持Disconnect等操作呀,请各位大虾帮忙!



public
{ Public declarations }



ExcelApp:variant;



procedure TForm2.FormCreate(Sender: TObject);
begin
try
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.Visible:=false;
except
application.MessageBox('您的机器里未安装Microsoft Excel','系统提示', MB_OK+MB_ICONWARNING );
close;
end;
end;
上面进行初始化

错误代码在下面块中:
Function TForm2.CheckFile(Filename:string;Fullpath:string):boolean;
var
//xlsub:olevariant;
//xworkbook:olevariant;
xlsub:variant;
xworkbook:variant;
begin
try
xworkbook := ExcelApp.Workbooks.open(fullpath + filename +'.xls');
except
begin
ShowMessage('文件打开失败');
xworkbook := Unassigned;
result := false;
exit;
end;
end;
xlsub := ExcelApp.Application.ActiveWorkbook.Worksheets[1];
FirstSheet := xlsub.name + '$';
try
case FileType of
1:
begin
result := true;
end;



end;
finally
xworkBook.Saved := True;
xworkbook.close;
Xworkbook:=Unassigned;
xlsub := Unassigned;
end;
end;

 
能否用quit的方法.
 
楼上的朋友,不可以用Quit,提示:Method 'quit' not supported by automation object
 
需要用ExcelApp.Quit
而不是xworkbook.close
 
我是這樣保存的
VWorkBook:=VXLApp.WorkBooks.Add;
。。。
。。。
if not VXLApp.ActiveWorkBook.Saved then
VWorkBook.SaveAs(VFileName);

我是用這種方法退出的
VXLApp.ActiveWorkBook.Saved := True;
VXLApp.Workbooks.Close;
VXLApp.Quit;
VXLApp:=Unassigned;
在我的程序中可以正常運行,無報錯
 
多人接受答案了。
 
后退
顶部