c#EXCEL關(guān)閉方式(關(guān)閉EXCEL進程)
c#EXCEL關(guān)閉方式
一直被一個問題困擾就是導出excel時如何關(guān)閉excel進程,我使用過oExcelApp.Quit(); 也用過GC回收,結(jié)果都不理想,后來發(fā)現(xiàn)可以kill進程,但是問題是kill進程 時不好解決多人并發(fā)的使用。
比如一個人在導表然后kill所以的excel但是如果同時又有人在導表那么這就把另外一個excel結(jié)束了,現(xiàn)在我們要辦的 是如何kill當前這個進程。
這里我們先看一下代碼
oExcelApp.Quit();
PublicMethod.Kill(oExcelApp);//調(diào)用kill當前excel進程下面是殺進程的類
直接復制粘貼即可。
using System.Runtime.InteropServices;
public class PublicMethod
{
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd,out int ID);
public static void Kill(Microsoft.Office.Interop.Excel.Application excel)
{
IntPtr t=new IntPtr(excel.Hwnd);//得到這個句柄,具體作用是得到這塊內(nèi)存入口
int k= 0;
GetWindowThreadProcessId(t,out k); //得到本進程唯一標志k
System.Diagnostics.Process p=System.Diagnostics.Process.GetProcessById(k); //得到對進程k的引用
p.Kill(); //關(guān)閉進程k
}
}這樣我們就可以關(guān)閉當前進程excel而不是殺掉所有的類型為excel進程了!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
總結(jié)C#刪除字符串數(shù)組中空字符串的幾種方法
C#中要如何才能刪除一個字符串數(shù)組中的空字符串呢?下面的文章會介紹多種方式來實現(xiàn)清除數(shù)組中的空字符串,以及在.net中將字符串數(shù)組中字符串為空的元素去除。2016-08-08
C# TabControl手動觸發(fā)DrawItem的實現(xiàn)
本文主要介紹了C# TabControl手動觸發(fā)DrawItem的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02

