在論壇中經常看到問如何結束Excel進程的帖子,很多人給出
的方法是先得到系統進程列表,然後和“Excel”匹配,是Excel
的進程就殺死,我個人認為這個方法是不可行的,如果軟件用這種方法
殺死自己啟動的進程,應該算是Bug(有可能將用戶Excel進程殺掉)。
我在網上找到了另一種殺死Excel 進程的方法,如下:
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheets);
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
...
System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
worksheets=null;
worksheet=null;
...
ExcelApp=null;
range=null;
把操作Excel文件用到的對象實例全部釋放。
然後資源回收!
GC.Collect();
以上的代碼最好能放在finally中,防止操作Excel文件時發生異常而執行不到!
在打開任務管理器看看,Excel進程是不是已經不在了!
哪位朋友如果有更好的方法,也請貢獻出來,大家一起學習!