我正在使用 Excel 互操作,每次调用时似乎都在创建一个进程
new Microsoft.Office.Interop.Excel.Application()
即使我打电话也永远不会结束这个过程
xlApp.Quit();
我怎样才能让进程结束?
我正在使用 Excel 互操作,每次调用时似乎都在创建一个进程
new Microsoft.Office.Interop.Excel.Application()
即使我打电话也永远不会结束这个过程
xlApp.Quit();
我怎样才能让进程结束?
您是否发布了所有参考资料?(这意味着您必须首先保存它们)。
例如,这是我从一些 excel interop() 中处理的内容:
public void Dispose()
{
if(!this.disposed)
{
if(cell != null)
Marshal.FinalReleaseComObject(cell);
if(cells != null)
Marshal.FinalReleaseComObject(cells);
if(worksheet != null)
Marshal.FinalReleaseComObject(worksheet);
if(worksheets != null)
Marshal.FinalReleaseComObject(worksheets);
if (workbook != null)
{
workbook.Close(false, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(workbook);
}
Marshal.FinalReleaseComObject(workbooks);
xlApp.Quit();
Marshal.FinalReleaseComObject(xlApp);
GC.Collect();
GC.WaitForPendingFinalizers();
disposed = true;
}
}
(不确定这是否完美,但它对我有用!)
如果您不释放使用过的 COM 对象,Excel 将不会退出。
大多数情况下发生这种情况是因为您确实修改了文档并且 Excel 正在等待一些保存。尝试类似:
ObjWorkBook.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlDoNotSaveChanges,
Type.Missing, Type.Missing);
戒烟前