C#中如何结束Excel (Office)进程
2010-06-01 18:19
190 查看
要确保退出 Office 应用程序,自动化代码一定要满足以下条件:
将每个对象声明为新变量。例如,将下面的代码行
停止使用某个对象时,应使用 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
将每个对象声明为新变量。例如,将下面的代码行
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
相关文章推荐
- [C#]结束Excel的进程的方法
- C#操作Execl如何释放进程里占用的Excel.exe
- C#导出Excel后无法结束相应进程的解决办法
- 关于.NET程序中使用Excel对象后,如何结束残留的Excel进程。
- C#下如何通过不添加对Office的引用,而创建Excel对象
- 关于.NET程序中使用Excel对象后,如何结束残留的Excel进程
- 从DataView中生成Excel报表的方案(C#) 可以结束进程
- C#程序中:如何启用进程、结束进程、查找进程
- 如何用C#提取Word、Excel等文件的文本(无需安装Office)
- 用C#输出数据到excel的最简单的例子--and--C#如何退出excel的进程!
- 使用完excel后,如何关闭进程(C#)
- [C#]结束Excel的进程的方法
- C# 如何关闭,释放Excel进程
- C# 调用Office Excel 接口方法Quit(),但是Excel进程不退出的解决办法
- C#程序中:如何启用进程、结束进程、查找进程
- Visual C# Office自动化Excel进程残留问题
- c#操作excel后如何杀死excel进程
- C#操作完EXCEL如何砌底关闭进程
- C#程序中:如何启用进程、结束进程、查找进程
- C#中如何结束一个进程