我正在使用interop庫從excel文件的工作表中讀取一些數據。我通過使用Microsoft.Office.Interop.Excel
獲得數據,然後讀取表單中的所有數據。Excel進程仍在後臺運行
Application ExcelApp = new Excel.Application();
Workbook excelWorkbook = ExcelApp2.Workbooks.Open(excelFileNamePath);
_Worksheet excelWorksheet = excelWorkbook.Sheets[excelSheetName];
Range excelRange = excelWorksheet.UsedRange;
//...for loops for reading data
ExcelApp.Quit();
但經過我的應用程序終止,我想修改我的excel文件,不得不同時開放了一些問題。顯然,即使我打電話給ExcelApp.Quit()
,excel進程仍會繼續在後臺運行。有沒有辦法正確關閉應用程序使用的excel文件?我是c#的新手,所以我可能在這裏錯過了一些東西。
編輯:解決!顯然有一個rule COM對象,不鼓勵使用2點。
Excel.Application ExcelApp2 = new Excel.Application();
Excel.Workbooks excelWorkbooks = ExcelApp2.Workbooks;
Excel.Workbook excelWorkbook = excelWorkbooks.Open(excelFileName);
Excel._Worksheet excelWorksheet = excelWorkbook.Sheets[excelSheetName];
//...
excelWorkbook.Close();
Marshal.ReleaseComObject(excelWorkbook);
Marshal.ReleaseComObject(excelWorksheet);
Marshal.ReleaseComObject(excelRange);
ExcelApp2.Quit();
在看一看:http://stackoverflow.com/questions/9962157/safely-disposing-excel-interop-objects -in-c – CJBS
你有沒有試過這個:http://support.microsoft。com/kb/Q317109 –
@CJBS他們也沒有找到答案!但我會嘗試實施其中的一個建議。謝謝! – rrh