打开excel后,一般不会自动终止excel.exe,
不过如此设置后,可以避免
myWorkbook.SaveAs(newFilename, missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
主要是下面这句
myWorkbook.Close(Excel.XlSaveAsAccessMode.xlNoChange, missing, missing);
myApplication.Workbooks.Close();
myApplication.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject((object)myApplication);
System.Runtime.InteropServices.Marshal.ReleaseComObject((object)myWorkbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject((object)myWorksheet);
myWorksheet = null;
myWorkbook = null;
GC.Collect(0);
关闭excel进程的方法。
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
//Excel.Application myApplication = new Excel.Application();
public void KillProcess()
{
IntPtr t = new IntPtr(myApplication.Hwnd);
int k = 0;
GetWindowThreadProcessId(t, out k);
System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
p.Kill();
}