调用Excel后无法释放
try
ExcelApplication1.Connect;
Except
MessageDlg( 'Excel may not be installed! ',mtError,[mbOK],0);
abort;
end;
try
ExcelApplication1.Visible[0]:=False;
ExcelApplication1.Workbooks.Add(OpenDialog1.FileName,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
ExcelWorkbook1.Close;
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
ShowMessage( '已成功添加! ');
except
ExcelWorksheet1.Free;
ExcelWorkbook1.Free;
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
ShowMessage( '出错啦! ');
在上面这个程序中无论try成功还是不成功最后进程中都还有一个Excel.exe的进程,怎么让Excel释放关闭这个Excel.exe进程啊???
[解决办法]
应该是finally
[解决办法]
hsmserver(撒哈拉之雨的悲伤)
的意思是把释放语句放在finally块里面,finally里面才是一定要执行的代码
except里面的代码只有出错了才执行,否则是不会执行的
[解决办法]
在外层套一层
Try
finally
ExcelWorksheet1.Free;
ExcelWorkbook1.Free;
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
end;
[解决办法]
ExcelApplication1:= unassigned;