`
svygh123
  • 浏览: 123107 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

c#操作excel后关闭excel.exe的方法(转)

阅读更多
。网上的一种说法,关闭range,关闭worksheet,关闭workbook,最后关闭excel
  
System.Runtime.InteropServices.Marshal.ReleaseComObject(Range); 
2System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook); 
3System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel); 

Range = null;
myBook = null; 
myExcel = null;



我试过,没有成功


2。关闭进程
C#和Asp.net下excel进程一被打开,有时就无法关闭,   尤其是website.对关闭该进程有过GC、release等方法,但这些方法并不是在所有情况下均适用。  于是提出了kill   process的方法,   目前我见过的方法多是用进程创建时间筛选excel.exe进程,   然后kill 。     这样的方法是不精确的,   也是不安全的,   通过对网上一些关于Api运用文章的阅读,   我找到了更为直接精确找到这个process并kill的方法,以下就是代码
   
using   System.Runtime.InteropServices;   
      
  [DllImport("User32.dll",   CharSet   =   CharSet.Auto)]   
  public   static   extern   int   GetWindowThreadProcessId(IntPtr   hwnd,   out   int   ID);   
  protected   void   Button1_Click(object   sender,   EventArgs   e)   
  {   
      Excel.ApplicationClass   excel   =   new   Microsoft.Office.Interop.Excel.ApplicationClass();   
      excel.Workbooks.Open("d:\aaa.xls",   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing);   
      IntPtr   t   =   new   IntPtr(excel.Hwnd);   
      int   k   =   0;   
      GetWindowThreadProcessId(t,   out   k);   
      System.Diagnostics.Process   p   =   System.Diagnostics.Process.GetProcessById(k);   
      p.Kill();                   
   }

以上代码百分百成功的关闭excel.exe进程
我的做法是结合两者,先释放资源,然后关闭进程。
同时网上说避免使用GC.Collect 方法 (),因为会导致整个clr进行gc,影响你的性能.所以我也没有调用GC.Collect

分享到:
评论

相关推荐

    C#彻底关闭Excel进程excel.exe

    本文将深入探讨如何在C#编程环境中,通过代码彻底关闭Excel进程“excel.exe”。 首先,我们需要理解什么是进程。在操作系统中,进程是执行中的程序的一个实例,每个进程都有自己的内存空间和系统资源。当我们打开一...

    C#无法关闭Excel进程的解决办法.

    例如,在调用`wb.Close()`、`wbb.Close()`及`excel.Quit()`之后,使用`Marshal.ReleaseComObject()`来释放资源,有时依然无法完全关闭Excel进程。 #### 解决方案 为了解决这一问题,我们可以采取以下步骤: 1. **...

    C#删除Excel行实例,Microsoft.Office.Interop.Excel

    Microsoft.Office.Interop.Excel是C#中用于与Microsoft Excel进行交互的库,它允许开发者通过编程方式创建、修改和操作Excel文件。在这个实例中,我们将深入探讨如何使用C#和Microsoft.Office.Interop.Excel来删除...

    C#操作Excel的几种方法

    ### C#操作Excel的几种方法 #### 概述 在.NET框架中,通过C#语言进行Excel文件的操作是一项常见的需求,比如数据导入导出、报表生成等场景。本文将详细介绍几种利用C#来操作Excel的方法,并重点分析一种基于`...

    C# 导出Excel,导出Excel后关闭进程中Excel.exe

    在C#编程中,导出数据到Excel是常见的需求,特别是在数据分析、报表生成或数据交换等场景。...无论是直接操作Excel还是使用库,都可以有效地将数据导出到Excel文件,并在完成后确保进程被正确关闭。

    C# Microsoft.Office.Interop.Excel.dll读写表格

    总结,使用C#和Microsoft.Office.Interop.Excel.dll进行Excel操作是一种常见的技术,它允许开发者充分利用Excel的强大功能,但需要注意资源管理和兼容性问题。在开发过程中,结合Windows Forms或其他UI框架,可以...

    C#操作Excel

    ### C#操作Excel知识点 ...以上就是关于C#操作Excel的基本知识点和技术细节,包括读取、插入、修改数据、导出、写保护以及根据不同权限设置保护级别的方法。希望这些内容能帮助您更好地理解和使用C#中的Excel操作技术。

    解析c#操作excel后关闭excel.exe的方法

    总的来说,处理C#操作Excel后关闭Excel.exe进程的问题,应优先保证资源的正确释放,如调用Excel对象的`Quit()`方法,然后通过适当的方式(如使用进程ID)安全地结束残留的进程。在实际开发中,还应考虑错误处理和...

    C# 操作Excel案例

    使用`using`语句或手动调用`Dispose()`方法关闭工作簿和Excel应用程序。 在这个名为"WSYManagement"的案例中,可能包含了一个使用C#操作Excel的具体程序,可能涉及到了数据读取、分析、报表生成等实用功能。通过...

    c# 操作Excel单元格属性

    range.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlLineStyleNone; //设置单元格上边框为无边框 range.EntireColumn....

    C#操作EXCEl函数

    接下来,我们将详细介绍C#操作Excel函数的使用方法。 打开Excel文件 使用C#操作Excel函数打开Excel文件需要添加Microsoft Excel 11.0 Object Library引用,并使用using Microsoft.Office.Interop.Excel;语句引入...

    C#操作EXCEL.doc

    将Excel应用程序的可执行文件`excel.exe`复制到该目录,然后在命令行中运行`tlbimp excel.exe`,这将生成一个名为`Excel.dll`的文件。这个动态链接库包含了可以用来操作Excel对象模型的类型定义。 一旦有了`Excel....

    C#操作ExcelCOM生成复杂图表

    在C#编程中,操作Excel通常是为了处理数据或者创建复杂的报表和图表。Excel COM(Component Object Model)接口提供了一种方式,使得C#程序能够直接与Microsoft Office应用程序交互,包括Excel。本文将深入探讨如何...

    C#操作EXCEL类

    Excel.Application app = new Excel.Application(); app.Visible = true; // 显示Excel应用 app.UserControl = true; // 允许用户交互 app.DisplayAlerts = false; // 关闭弹出警告 ``` 接着,通过`app.Workbooks`...

    C#操作Excel后的进程释放

    在.net和C#中调用了Excel后,往往Excel进程不会被关闭,此文档给了一个思路

    用C#把Excel转换成PDF

    在C#中,我们可以借助Microsoft Office Interop库来操作Excel,但这需要在运行环境中安装完整的Office套件。另一种更通用的方法是使用第三方库,如EPPlus用于读取和操作Excel,以及iTextSharp或PDFSharp用于生成PDF...

    C#利用Excel生成图片

    9. **释放资源**:完成操作后,别忘了关闭工作簿和释放Excel应用实例,以防止内存泄漏。 ```csharp workbook.Close(); excelApp.Quit(); Marshal.ReleaseComObject(excelApp); Marshal.ReleaseComObject(workbook); ...

    C# 创建Excel 加Excel下拉框列,并且给下拉框动态赋值

    在本文中,我们将深入探讨如何使用C#编程语言来创建Excel文件,并且为其中的某一列设置下拉框,同时实现下拉框的动态赋值。这个过程涉及到Microsoft Office Interop库的应用,以及对Excel对象模型的理解。让我们一...

    C#操作EXCEL文件

    6. **保存和关闭**:完成操作后,需要保存文件并关闭Excel应用程序或释放资源。Interop使用`Workbook.Save`和`Application.Quit`,NPOI则有`Workbook.Write`和`Workbook.Close`方法。 7. **并发和效率**:由于...

Global site tag (gtag.js) - Google Analytics