打开并读取excel文件后不能杀死EXCEL.EXE进程

我通过下面的stream程打开并读取excel中的数据:

ApplicationClass objApp = new ApplicationClass(); Workbooks objBooks = objApp.Workbooks; Workbook objBook = objBooks.Open(..) // Do something (read data...) ... objBook.Close(false, Missing.Value, Missing.Value); objApp.Quit(); Marshal.ReleaseComObject(objBooks); Marshal.ReleaseComObject(objBook); Marshal.ReleaseComObject(objApp); objBook = null; objApp = null; GC.Collect(); GC.WaitForPendingFinalizers(); 

但是经过上面的过程,我在任务pipe理器中检查,EXCEL.EXE进程还活着,不要被打死。 请告诉我为什么,帮我一个解决scheme!

这个代码如何?

 [DllImport("user32.dll")] private static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, out IntPtr ProcessId); 

毕竟你的代码,当你认为没有必要的excel文件写这个代码

 IntPtr hwnd = new IntPtr(ExcelObj.Hwnd); // Your Excel Application name IntPtr processId; IntPtr foo = GetWindowThreadProcessId(hwnd, out processId); Process proc = Process.GetProcessById(processId.ToInt32()); proc.Kill();