I\'m using the Excel interop and it seems to be creating a process every time I call
new Microsoft.Office.Interop.Excel.Application()
And n
Excel won't quit if you don't release used COM Objects.
This Answer should provide more information.
Are you releasing all of your references? (Which means you have to save them in the first place).
For example here's what's in my dispose from some 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;
}
}
(Not sure if this is perfect but it worked for me!)
Most of the time this happens because you did modify the document and Excel is waiting for some saving. Try something like:
ObjWorkBook.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlDoNotSaveChanges,
Type.Missing, Type.Missing);
before quitting