.net中清除EXCEL進(jìn)程的方法
最近用C#寫winform,將EXCEL文件中的數(shù)據(jù)寫入數(shù)據(jù)庫(kù)中,將DataGrid中的數(shù)據(jù)導(dǎo)出為EXCEL格式。最后發(fā)現(xiàn)EXCEL內(nèi)存泄漏,在應(yīng)用程序不退出的情況下,總是有一個(gè)EXCEL進(jìn)程不能清除,下面這個(gè)方法可以解決問題:1、對(duì)excel操作做成一個(gè)函數(shù),然后調(diào)用此函數(shù)。
在函數(shù)中調(diào)用GC.Collect();無用,因?yàn)镚C不回收調(diào)用自己的那一段代碼塊!
2、在函數(shù)的下面調(diào)用GC.Collect();語(yǔ)句。你會(huì)發(fā)現(xiàn)EXCEL進(jìn)程沒有了!
例如:
private void Import()
{
Excel.Application myExcel = new Excel.Application();
myExcel.Workbooks.Add(openFileDialog1.FileName);
//
..
//讀取EXCEL文件,導(dǎo)入到數(shù)據(jù)庫(kù).
//清除excel垃圾進(jìn)程
myExcel.Workbooks.Close();
myExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);
myExcel = null;
}
private void ExcelImport() {
Import();
GC.Collect();
}
2.去調(diào)用ExcelImport()這個(gè)方法就可以了!
posted on 2007-12-05 20:33 李亞 閱讀(564) 評(píng)論(2) 編輯 收藏 引用 所屬分類: .NET/C#

