思路是这样的
Process[] processlist = Process.GetProcesses();foreach(Process kp in processlist)
{
    if(kp.Name=ExcelFile.Name)
      kp.Kill();
}

解决方案 »

  1.   

    First,don't use "select" or "chat" method in your code.
    Second,add this code:set ExcelFile=Nothing.
      

  2.   

    yarshray(saga jion) :  谢谢你的参与。
    如果我在程序外直接打开一个excel,则进程中有这个excel
    同时我在程序中又打开这个excel,象这种强制杀死进程的方法会不会有影响。能不能在程序中 刚开始使用excel时启动一个进程,当我Quit时,我的理想应该他把这个进程关掉。是不是微软提供的这些excel不能实现这种“理所当然”的操作?NaZiChong(子虫) :  谢谢你的参与。但我有点不明白你的意思,为什么不能用 "select" or "chat" method 
    set ExcelFile=Nothing 好象是vb的用法。
      

  3.   

    开始认为oExcel.Quit()就搞定的,结果一直无效。
     结果查看了很多的相关文档找到了解决方案: 请使用GC.Collect (); 
      希望对你有帮助...
      

  4.   

    没错,就是GC.Collect();它的作用是类似JAVA里的垃圾收集器,用它可以清除不用的线程。
      

  5.   

    GC.Collect();的想法很好。但效果并不是我们希望的那样,很遗憾进程还在。
      

  6.   

    to   luohzad(一心一意想成为c#高手)  
    你的方法不错,我在debug版,发现在进程存在,excel进程
    在release版就不存在了。  好好我想这个问题是很有价值的,问题虽小,却涉及.net垃圾回收的重大方面。感谢各位的积极参与。