.net中清除EXCEL进程最有效的方法

原创 2005年04月22日 19:41:00

      最近用C#写winform,将EXCEL文件中的数据写入数据库中,将DataGrid中的数据导出为EXCEL格式。最后发现EXCEL内存泄漏,在应用程序不退出的情况下,总是有一个EXCEL进程不能清除!在网上找了许多答案,都是无用的答案!什么不管三七二十一杀EXCEL进程啦,不是最有效的方法!其实最有效的方法就是下面这个方法:

1、对excel操作做成一个函数,然后调用此函数。在函数中调用GC.Collect();无用,因为GC不回收调用自己的那一段代码块!
2、在函数的下面调用GC.Collect();语句。你会发现EXCEL进程没有了!
例如:
private void Import() {
     Excel.Application myExcel  = new Excel.Application();
     myExcel.Workbooks.Add(openFileDialog1.FileName);
    //........
   //读取EXCEL文件,导入到数据库.
   //清除excel垃圾进程
   myExcel.Workbooks.Close();
   myExcel.Quit();
   System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);
   myExcel = null;
}
 private void ExcelImport() {
   Import();
   GC.Collect();
 }
//以下按button1按钮,使用多线程读取EXCEL文件,导入到数据库.
private void button1_Click(object sender, System.EventArgs e) {
    if(openFileDialog1.ShowDialog() == DialogResult.OK) {
     System.Threading.Thread t=new System.Threading.Thread(new System.Threading.ThreadStart(ExcelImport));
     t.Start();
    }
  }

.Net程序中如何彻底关闭Excel - 关闭进程外COM方法

在.Net中, 经常我们会利用Excel来展现数据. 我们知道此时, Excel做为一个进程外COM被激活. 可是却无法彻底关闭该进程. 这是什么原因呢?COM的生命周期依靠计数机制,只有当引用计数为...
  • redoc_li
  • redoc_li
  • 2007年06月29日 21:47
  • 1136

【转】.NET引用Excel操作时无法关闭Excel.exe进程的解决方法

http://blog.csdn.net/hsyj_0001/article/details/7686364 在使用Office类库Microsoft.Office.Interop.Excel导入导出...
  • zslefour
  • zslefour
  • 2014年03月23日 21:01
  • 2679

ASP.NET导出Excel并将Excel进程关闭 (根据进程ID)

开发工作中经常遇到跟Excel打交道的地方,但在ASP.NET中使用完Excel后往往不能将其关闭,导致服务器上的Excel进程越来越多.本文介绍一个直接将进程KILL的方法,根据进程ID来KILL,...
  • ranbolwb
  • ranbolwb
  • 2012年04月18日 15:46
  • 4421

C# 调用excel后,杀掉excel进程

转载自:http://bbs.csdn.net/topics/390255015/ 收藏备用。public class KillExcel { [DllImport("Use...
  • xuehuic
  • xuehuic
  • 2016年03月03日 14:49
  • 2324

.net中清除EXCEL进程最有效的方法

      最近用C#写winform,将EXCEL文件中的数据写入数据库中,将DataGrid中的数据导出为EXCEL格式。最后发现EXCEL内存泄漏,在应用程序不退出的情况下,总是有一个EXCEL...
  • 9sun888
  • 9sun888
  • 2005年04月22日 19:41
  • 1310

C#彻底关闭Excel进程excel.exe

  • 2014年03月25日 11:08
  • 2KB
  • 下载

.net中清除EXCEL进程最有效的方法

 最近用C#写winform,将EXCEL文件中的数据写入数据库中,将DataGrid中的数据导出为EXCEL格式。最后发现EXCEL内存泄漏,在应用程序不退出的情况下,总是有一个EXCEL进程不能清...
  • ipqxiang
  • ipqxiang
  • 2008年09月10日 01:44
  • 564

关于.NET程序中使用Excel对象后,如何结束残留的Excel进程

.NET中调用Excel将数据写入到Excel文件中,程序结束后,系统中会残留一个Excel进程没有退出。查资料后,解决的方法是调用System.Runtime.InteropServices.Mar...
  • smallboy_5
  • smallboy_5
  • 2008年04月11日 18:25
  • 1274

彻底关闭EXCEL进程

  • 2008年06月30日 18:13
  • 2KB
  • 下载

[C#]结束Excel的进程的方法

转自:http://blog.csdn.net/ac669/archive/2005/01/22/263670.aspx    在论坛中经常看到问如何结束Excel进程的帖子,很多人给出的方法是先得到...
  • cansee
  • cansee
  • 2005年01月24日 08:46
  • 721
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.net中清除EXCEL进程最有效的方法
举报原因:
原因补充:

(最多只允许输入30个字)