您的位置:首页 > 编程语言 > C#

C#中如何结束Excel (Office)进程

2010-06-01 18:19 190 查看
要确保退出 Office 应用程序,自动化代码一定要满足以下条件:

将每个对象声明为新变量。例如,将下面的代码行
oBook = oExcel.Workbooks.Add()
更改为以下内容:
Excel.Workbooks oBooks; Excel.Workbook oBook; oBooks = oExcel.Workbooks oBook = oBooks.Add()

停止使用某个对象时,应使用 System.Runtime.InteropServices.Marshal.ReleaseComObject。这样可以减少 RCW 的引用计数。
要释放对变量的引用,请将变量设置为等于 NothingNull
使用 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: