Excel VSTO实例的退出

浏览:1034 发布日期:2023-07-01 10:34:52

要获取一个Excel实例,我们可以这样做:

excel.Application app = (excel.Application)Marshal.GetActiveObject("Excel.Application");

如果存在excel进程,则可以获取它的实例。如果excel是前台进程,则可以通过下面的代码退出,并且后台进程也没有残留。如果excel是一个后台进程(如Excel对象没有释放),则只会关闭打开的前台进程,后台依然还有残留,即使ReleaseComObject方法返回引用数为0。具体什么原因,我还不知道。

app.Quit();
   int count = Marshal.ReleaseComObject(app);