我正在使用互操作库从一张excel文件中读取一些数据.我通过使用Microsoft.Office.Interop.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();
Run Code Online (Sandbox Code Playgroud)
但是在我的应用程序终止后,我尝试编辑我的excel文件,并在打开时遇到一些问题.显然,即使我打电话,excel进程仍在后台运行ExcelApp.Quit().有没有办法正确关闭应用程序使用的excel文件?我是c#的新手,所以我可能在这里遗漏了一些东西.
编辑:解决了!显然,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();
Run Code Online (Sandbox Code Playgroud)