.net中清除EXCEL进程的方法

        最近用C#写winform,将EXCEL文件中的数据写入数据库中,将DataGrid中的数据导出为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();
 }


2.去调用ExcelImport()这个方法就可以了!

posted on 2007-12-05 20:33 李亚 阅读(520) 评论(2)  编辑 收藏 引用 所属分类: .NET/C#

评论

# re: .net中清除EXCEL进程的方法 2007-12-07 20:21 传世私服

3634  回复  更多评论   

# re: .net中清除EXCEL进程的方法 2007-12-07 20:21 征途私服

8720  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

公告

这世界并不会在意你的自尊,这世界指望你在自我感觉良好之前先要有所成就!

常用链接

留言簿(3)

随笔分类(32)

随笔档案(32)

相册

最新随笔

搜索

最新评论

阅读排行榜

评论排行榜