http://blog.bossma.cn/dotnet/csharp-exorpt-excel-process-kill/comment-page-1/#comment-10511
public void QuitExcelApp(Microsoft.Office.Interop.Excel.Application excelApp){ if (excelApp != null)//excelApp全域變數 { //關閉EXCEl進程,只把EXCEL進程kill是不夠的, //還必須把全域變數中的所有與Excel操作相關的excel變數 //賦值為null才可以 excelApp.DisplayAlerts = false;//不顯示提示框 excelApp.Workbooks.Close(); excelApp.Quit(); KillSpecialExcel(excelApp); excelApp = null; //workbook1 = null; //workSheetTemp = null; }}[DllImport("user32.dll", SetLastError = true)]static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);public void KillSpecialExcel(Microsoft.Office.Interop.Excel.Application m_objExcel){ try { if (m_objExcel != null) { int lpdwProcessId; GetWindowThreadProcessId(new IntPtr(m_objExcel.Hwnd), out lpdwProcessId); Process p = System.Diagnostics.Process.GetProcessById(lpdwProcessId); if (!p.CloseMainWindow()) { p.Kill(); } } } catch (Exception ex) { Console.WriteLine("Delete Excel Process Error:" + ex.Message); }}