C#利用com操作excel释放进程的解决方法
2023-06-13 09:14:48 时间
第一个
System.Runtime.InteropServices.Marshal.ReleaseComObject(sheets);
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
excelApp=null;
wbclass=null;
sheets=null;
worksheet=null;
range=null;
GC.Collect();
GC.WaitForPendingFinalizers();
释放不彻底,还是有进程存在。
第二种
//调用底层函数获取进程标示
[DllImport("User32.dll")]
publicstaticexternintGetWindowThreadProcessId(IntPtrhWnd,outintProcessId);
privatestaticvoidKillExcel(Microsoft.Office.Interop.Excel.ApplicationtheApp)
{
intid=0;
IntPtrintptr=newIntPtr(theApp.Hwnd);
System.Diagnostics.Processp=null;
try
{
GetWindowThreadProcessId(intptr,outid);
p=System.Diagnostics.Process.GetProcessById(id);
if(p!=null)
{
p.Kill();
p.Dispose();
}
}
catch(Exceptionex)
{
}
}
这个方法比较好,我试过了可以关闭掉进程。
相关文章
- C# Winform 窗体美化(目录)
- c#数组赋初值_C#数组初始化
- c#中int16 int32 int64区别[通俗易懂]
- c# mysql executenonquery_C#与数据库访问技术总结(八)之ExecuteNonQuery方法
- c# mysql executenonquery_C#与数据库访问技术之ExecuteNonQuery方法
- excel导入mysql代码_EXCEL导入Mysql方法「建议收藏」
- c# 多线程并发-金三银四面试:C#.NET面试题高级篇2-多线程
- c#面试题抽象类和接口的区别-金三银四面试:C#程序员经常遇到的30道基础面试题,想你所想
- Excel数据快速转移至MySQL(excel转mysql)
- 轻松实现Excel导入MySQL数据库(excel导入mysql数据库)
- 导入Excel数据到Oracle数据库(将excel导入oracle数据库)
- 通过Excel表驱动Oracle实现数据分析(excel表oracle)
- C#调用存储过程简单完整的实例代码
- 深入分析C#中WinForm控件之Dock顺序调整的详解
- 探讨如何配置SQL2008,让其允许C#远程外部连接的方法详解
- c#之圆形无标题栏椭圆窗体的实现详解
- c#关闭窗体时提示的小例子
- 解析c#操作excel后关闭excel.exe的方法
- js导出table数据到excel即导出为EXCEL文档的方法
- c#利用Excel直接读取数据到DataGridView
- C#定时器定时更新的简单实例
- C#中按指定质量保存图片的实例代码
- c#执行excel宏模版的方法
- c#实现把汉字转为带田字格背景的jpg图片
- C#导入导出EXCEL文件的代码实例
- C#实现appSettings节点读取与修改的方法
- C#设计模式之单例模式实例讲解
- C#定义并实现单链表实例解析
- C#窗体读取EXCEL并存入SQL数据库的方法