我的程序是在服务器端new一个EXCEL,用完后关闭,可是怎么也关不掉打开的EXCEL进程,请问该怎么关闭?我试了很多方法,连
myExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject (myExcel);
myExcel = null;GC.Collect();
GC.WaitForPendingFinalizers();
等方法都用了,可还是关不掉啊,郁闷死了。请高手帮帮忙吧

解决方案 »

  1.   

    Word.ApplicationClass app = new Word.ApplicationClass();app.Application.Quit()EXCEL应该也差不多吧
      

  2.   

    没有办法关掉,只有结束EXCEL.EXE进程,
      

  3.   

    Process[] myprocesses=Process.GetProcessesByName("EXCEL.EXE");
    foreach(Process myprocess in myprocesses)
    myprocesses[0].Kill();
    其他方法我以前也用过,没有办法结束EXCEL.EXE进程。
      

  4.   

    微软的技术工程师说他们的Excel不支持其作为服务端组件编程,其实实际情况是他们这个组件做的有问题,有些资源没有得到释放,也就是你调用其方法的时候new出来的资源没有被释放,那么其Excel进程就不会被释放.你只要能认真的释放和Excel相关的你new的任何一个实例的话,你最后调用Quit(),肯定能释放,我可以明确的说,是可以释放,但是要遵守我刚才说的规则.其实网上也有人发表过此类文章,你可以查阅一下.
      

  5.   

    to wmt85(天涯在流浪),这样岂不是杀了所有的excel进程了。我怎么判断杀我这个程序里new的进程呢?
    to shaofengli(懒懒),这方面的资料很难找啊,我把所有用到的range,sheet,workbook都用ReleaseComObject()方法释放掉了啊,难道还有什么要释放的?