delphi占用excel导致不能从windows打开excel
全局变量:varMsExcel:Variant;...procedureTForm1.Button1Click(Sender:TObject);vari:integer;...
全局变量:
var
MsExcel: Variant;
...
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
OpenDialog1: TOpenDialog;
result:boolean;
begin
OpenDialog1:=TOpenDialog.Create(nil);
try
OpenDialog1.FileName:='*.csv;*.xls';
if not OpenDialog1.Execute then
begin
Result := false;
exit;
end;
MsExcel := CreateOleObject('Excel.Application');
except
Result := false;
end;
.......
procedure TForm1.Button2Click(Sender: TObject);
......
MsExcel.Workbooks.Close;
MsExcel.Quit;
MsExcel:=unassigned;
//VarClear(MsExcel);
......
点了Button2以后在windows中打不开之前已经打开的excel,必须关闭delphi的程序,或者open另外一个文件才可以打开?请问这是怎么回事?后面这几个命令应该是已经释放了的呀 展开
var
MsExcel: Variant;
...
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
OpenDialog1: TOpenDialog;
result:boolean;
begin
OpenDialog1:=TOpenDialog.Create(nil);
try
OpenDialog1.FileName:='*.csv;*.xls';
if not OpenDialog1.Execute then
begin
Result := false;
exit;
end;
MsExcel := CreateOleObject('Excel.Application');
except
Result := false;
end;
.......
procedure TForm1.Button2Click(Sender: TObject);
......
MsExcel.Workbooks.Close;
MsExcel.Quit;
MsExcel:=unassigned;
//VarClear(MsExcel);
......
点了Button2以后在windows中打不开之前已经打开的excel,必须关闭delphi的程序,或者open另外一个文件才可以打开?请问这是怎么回事?后面这几个命令应该是已经释放了的呀 展开
1个回答
2015-08-24
展开全部
打开excel 后 文件是被打开的程序占用的而且是独占 所以必须关闭才可以
你也可以弄成非独占的(应该可以)
要不然你就每次打开后读取完东西以后就关闭 这样就不会发生这样的问题了
你也可以弄成非独占的(应该可以)
要不然你就每次打开后读取完东西以后就关闭 这样就不会发生这样的问题了
追问
非独占?怎么做?我button2点了以后就是关闭的动作了,但是还是在占用,我也试过放在同一个BUTTON里面也是一样,我也想读完就关闭,问题是我已经按照网上资料说的来关闭了,实际上还是不行。
追答
代码
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询