返回顶部

收藏

释放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

相关聚客文章
  1. 米豆网 - 1000seo 发表 2012-08-21 05:09:00 .netframework中TimeZoneInfo类的使用
  2. 姚 广远 发表 2015-04-14 06:17:41 C# 语言规范 —类型、变量和值
  3. 姚 广远 发表 2015-04-14 06:17:41 C# 语言规范 —类型、变量和值
  4. 姚 广远 发表 2015-04-15 05:20:48 C#语言规范—语句
  5. 姚 广远 发表 2015-04-13 05:03:47 .NET运行机制
  6. itcodes 发表 2014-07-22 17:00:00 C#计算时间差。
  7. 姚 广远 发表 2015-04-13 02:54:10 C# 与 C++ 数据类型对照表
  8. OWenT 发表 2017-02-15 15:27:51 atapp的c binding和c#适配
  9. Herb Sutter 发表 2012-04-07 06:13:01 We want await! A C# talk that’s applicable to C++
  10. Herb Sutter 发表 2012-04-13 01:23:12 Talk + panel online: “(Not Your Father’s) C++” + “
  11. 博主 发表 2014-06-14 17:21:00 C#操作excel出现 80040154异常
  12. Herb Sutter 发表 2012-08-02 11:26:37 “Strong” and “weak” hardware memory models

发表评论