返回顶部

收藏

释放excel.exe 方法2

更多

在程序中操作Excel导入导出的时候常常会出现Excel.exe进程堆积,所以找了个通用的方法,分享一下。

#region KillAllExcel   
public bool KillAllExcel()   
{   
    try  
    {   
        if (m_objExcel != null)  
        {   
            m_objExcel.Quit();   
            System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objExcel);   
            //释放COM组件,其实就是将其引用计数减1   
            //System.Diagnostics.Process theProc;   
            foreach (System.Diagnostics.Process theProc in System.Diagnostics.Process.GetProcessesByName(\"EXCEL\"))   
            {   
                //先关闭图形窗口。如果关闭失败...有的时候在状态里看不到图形窗口的excel了,   
                //但是在进程里仍然有EXCEL.EXE的进程存在,那么就需要杀掉它   
                if (theProc.CloseMainWindow() == false)   
                {   
                    theProc.Kill();   
                }   
            }   
            m_objExcel = null;   
            return true;   
        }   
    }   
    catch  
    {   
        return false;   
    }   
    return true;   
}   
#endregion
//该片段来自于http://outofmemory.cn

标签:c#,.net,Excel

收藏

0人收藏

支持

0

反对

0

发表评论