要确保退出 Office 应用程序,自动化代码一定要满足以下条件:
- 将每个对象声明为新变量。例如,将下面的代码行
oBook = oExcel.Workbooks.Add()
更改为以下内容: Excel.Workbooks oBooks; Excel.Workbook oBook; oBooks = oExcel.Workbooks oBook = oBooks.Add()
- 停止使用某个对象时,应使用 System.Runtime.InteropServices.Marshal.ReleaseComObject。这样可以减少 RCW 的引用计数。
- 要释放对变量的引用,请将变量设置为等于 Nothing 或 Null。
- 使用 Office 应用程序对象的 Quit 方法通知服务器关闭。
【示例如下】: private void NAR(object o) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(o); } catch {} finally { o = null; } }
private button1_Click(System.Object sender, System.EventArgs e) { Excel.Application oApp = new Excel.Application(); Excel.Workbooks oBooks = oApp.Workbooks; Excel.Workbook oBook = oBooks.Add(); Excel.Worksheet oSheet = oApp.ActiveSheet;
NAR(oSheet); oBook.Close(false); NAR(oBook); NAR(oBooks); oApp.Quit(); NAR(oApp);
System.Console.WriteLine("Sleeping..."); System.Threading.Thread.Sleep(5000); System.Console.WriteLine("End Excel"); } 更详细的说明请参考微软支持文档:http://support.microsoft.com/kb/317109
|
请发表评论