如何发布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); 

在戒烟之前