次のコードです:
Excel.ApplicationClass objExcelApp = new Excel.ApplicationClass();
Excel.Workbook objWorkbook = objExcelApp.Workbooks.Open("File Name",0, true, 1, "", "", true, Excel.XlPlatform.xlWindows,Type.Missing, false, false, 0,true);
Excel.Worksheet objWorksheet = (Excel.Worksheet) objWorkbook.Worksheets.get_Item(1);
Excel.Range objRangeData =objWorksheet.UsedRange;
// Some proces
GC.Collect();
objRangeData.Clear();
objWorkbook.Close(false, strDictFile, false);
objExcelApp.Workbooks.Close();
objExcelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(objRangeData);
System.Runtime.InteropServices.Marshal.ReleaseComObject(objWorksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(objWorkbook); System.Runtime.InteropServices.Marshal.ReleaseComObject(objExcelApp);
objWorksheet = null;
objWorkbook = null;
objExcelApp = null;
GC.Collect();
GC.WaitForPendingFinalizers();
あなたはExcelが開いているプロセスを提出開始するために使用したコードを投稿することができますか? – rahul
evrが第三者コンポーネントの1つをExcelから読み込もうとしましたか? http://blog.functionalfun.net/2008/06/reading-and-writing-excel-files-with.htmlを参照してください。 ExcelのAPIは素晴らしいですが、それはまた非常にメモリ/プロセッサ消費のアプローチ –
次のコードです:ApplicationClass objApp = new Excel.ApplicationClass();ワークブックobjWb = objApp .Workbooks.Open( "ファイル名"、0、true、1、 ""、 ""、true、Excel.XlPlatform.xlWindows、Type.Missing、false、false、0、true);ワークシートobjWs =(ワークシート)objWb.Worksheets.get_Item(1); // GC.Collect()を処理します。 objWb.Close(false、strDictFile、false); objApp.Workbooks.Close(); objApp.Quit(); ReleaseComObject(objWs); ReleaseComObject(objWb); ReleaseComObject(objApp); objWs = null; objWb = null; objApp = null; GC.Collect(); GC.WaitForPendingFinalizers(); –