.net中清除EXCEL进程的方法

.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()这个方法就可以了!

你可能感兴趣的:(.net中清除EXCEL进程的方法)