。网上的一种说法,关闭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”。 首先,我们需要理解什么是进程。在操作系统中,进程是执行中的程序的一个实例,每个进程都有自己的内存空间和系统资源。当我们打开一...
例如,在调用`wb.Close()`、`wbb.Close()`及`excel.Quit()`之后,使用`Marshal.ReleaseComObject()`来释放资源,有时依然无法完全关闭Excel进程。 #### 解决方案 为了解决这一问题,我们可以采取以下步骤: 1. **...
Microsoft.Office.Interop.Excel是C#中用于与Microsoft Excel进行交互的库,它允许开发者通过编程方式创建、修改和操作Excel文件。在这个实例中,我们将深入探讨如何使用C#和Microsoft.Office.Interop.Excel来删除...
### C#操作Excel的几种方法 #### 概述 在.NET框架中,通过C#语言进行Excel文件的操作是一项常见的需求,比如数据导入导出、报表生成等场景。本文将详细介绍几种利用C#来操作Excel的方法,并重点分析一种基于`...
在C#编程中,导出数据到Excel是常见的需求,特别是在数据分析、报表生成或数据交换等场景。...无论是直接操作Excel还是使用库,都可以有效地将数据导出到Excel文件,并在完成后确保进程被正确关闭。
总结,使用C#和Microsoft.Office.Interop.Excel.dll进行Excel操作是一种常见的技术,它允许开发者充分利用Excel的强大功能,但需要注意资源管理和兼容性问题。在开发过程中,结合Windows Forms或其他UI框架,可以...
### C#操作Excel知识点 ...以上就是关于C#操作Excel的基本知识点和技术细节,包括读取、插入、修改数据、导出、写保护以及根据不同权限设置保护级别的方法。希望这些内容能帮助您更好地理解和使用C#中的Excel操作技术。
总的来说,处理C#操作Excel后关闭Excel.exe进程的问题,应优先保证资源的正确释放,如调用Excel对象的`Quit()`方法,然后通过适当的方式(如使用进程ID)安全地结束残留的进程。在实际开发中,还应考虑错误处理和...
使用`using`语句或手动调用`Dispose()`方法关闭工作簿和Excel应用程序。 在这个名为"WSYManagement"的案例中,可能包含了一个使用C#操作Excel的具体程序,可能涉及到了数据读取、分析、报表生成等实用功能。通过...
range.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlLineStyleNone; //设置单元格上边框为无边框 range.EntireColumn....
接下来,我们将详细介绍C#操作Excel函数的使用方法。 打开Excel文件 使用C#操作Excel函数打开Excel文件需要添加Microsoft Excel 11.0 Object Library引用,并使用using Microsoft.Office.Interop.Excel;语句引入...
将Excel应用程序的可执行文件`excel.exe`复制到该目录,然后在命令行中运行`tlbimp excel.exe`,这将生成一个名为`Excel.dll`的文件。这个动态链接库包含了可以用来操作Excel对象模型的类型定义。 一旦有了`Excel....
在C#编程中,操作Excel通常是为了处理数据或者创建复杂的报表和图表。Excel COM(Component Object Model)接口提供了一种方式,使得C#程序能够直接与Microsoft Office应用程序交互,包括Excel。本文将深入探讨如何...
Excel.Application app = new Excel.Application(); app.Visible = true; // 显示Excel应用 app.UserControl = true; // 允许用户交互 app.DisplayAlerts = false; // 关闭弹出警告 ``` 接着,通过`app.Workbooks`...
在.net和C#中调用了Excel后,往往Excel进程不会被关闭,此文档给了一个思路
在C#中,我们可以借助Microsoft Office Interop库来操作Excel,但这需要在运行环境中安装完整的Office套件。另一种更通用的方法是使用第三方库,如EPPlus用于读取和操作Excel,以及iTextSharp或PDFSharp用于生成PDF...
9. **释放资源**:完成操作后,别忘了关闭工作簿和释放Excel应用实例,以防止内存泄漏。 ```csharp workbook.Close(); excelApp.Quit(); Marshal.ReleaseComObject(excelApp); Marshal.ReleaseComObject(workbook); ...
在本文中,我们将深入探讨如何使用C#编程语言来创建Excel文件,并且为其中的某一列设置下拉框,同时实现下拉框的动态赋值。这个过程涉及到Microsoft Office Interop库的应用,以及对Excel对象模型的理解。让我们一...
6. **保存和关闭**:完成操作后,需要保存文件并关闭Excel应用程序或释放资源。Interop使用`Workbook.Save`和`Application.Quit`,NPOI则有`Workbook.Write`和`Workbook.Close`方法。 7. **并发和效率**:由于...