如何发布excel流程?
我正在使用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);
在戒烟之前