简单的代码,我认为它应该杀死Excel。但是任务管理器说这会让Excel的一个实例运行。我遗漏了什么?谢谢。
using Microsoft.Office.Interop.Excel;
//Stuff...
// Launch dialog picker that return path to Excel file, in string
// called excelTemplate
Microsoft.Office.Interop.Excel.Application xlTemp = new Microsoft.Office.Interop.Excel.Application();
Workbook workbook = xlTemp.Workbooks.Open(excelTemplate);
xlTemp.DisplayAlerts = false;
// Poke through individual sheets, get some info from them
workbook.Close();
xlTemp.Quit();发布于 2018-11-13 09:28:13
Application xlTemp = new Application();
Workbooks workbooks = xlTemp.Workbooks;
Workbook workbook = workbooks.Open(excelTemplate);
// Do stuff.
workbook.Close();
Marshal.ReleaseComObject(workbook);
Marshal.ReleaseComObject(workbooks);
xlTemp.Quit();
Marshal.ReleaseComObject(xlTemp);除了需要释放每个COM对象之外,还要注意,通过执行xlTemp.Workbooks.Open,如果不将xlTemp.Workbooks赋给可以稍后释放的变量,则会泄漏COM引用。
发布于 2018-11-13 09:27:51
您可以使用#using来自动处置应用程序。
using(Microsoft.Office.Interop.Excel.Application xlTemp = new
Microsoft.Office.Interop.Excel.Application())
{
Workbook workbook = xlTemp.Workbooks.Open(excelTemplate);
xlTemp.DisplayAlerts = false;
// Poke through individual sheets, get some info from them
workbook.Close();
}https://stackoverflow.com/questions/53272412
复制相似问题