關閉excel程序

2022-03-31 16:19:21 字數 968 閱讀 1310

以前做web 程式的時候在.net環境下有時候是非常難將當前的excel或者word執行緒關閉,有時候在程式裡面執行完excel關閉並且釋放相關資源,但在伺服器端的excel程序要等一會才能被關閉掉。如果使用者在客戶端平凡對excel操作(在很短的時間內),即使在程式裡面控制了對excel元件的釋放和**,但是有可能伺服器端有n個excel程序沒有被關閉,造成伺服器可能死掉。我相信有過對excel程式設計的朋友對關閉excel程序特別是在web 覺得是件很麻煩的事情。網上也有很多關閉excel的例子,但是發現n多是相互**,都是用同一種辦法,而且效果也不是很好。

這幾天看到別人用system.diagnostics.process的時候想到了乙個新方法。下面是我的具體做法:

1: 在開啟或者新建excel,word的時候,先將當前程序裡的word,excel程序的id記錄下來(這些有可能是屬於使用者已經開啟的word或者excel程序,最後刪除的時候這些程序是不能kill 掉的

//在開啟excel前,將系統裡面已經存在的excel程序程序id儲存起來

listintlist = new list();

3:關閉就是如何關閉剛才新建的excel程序

//先用系統提供的方法對系統資源釋放,這種做法是大家常用的方法

system.runtime.interopservices.marshal.releasecomobject(worksheet);

system.runtime.interopservices.marshal.releasecomobject(workbook);

foreach (system.diagnostics.process p in system.diagnostics.process.getprocesses())

}//如果沒有匹配到的話,說明是程式新建的,則刪除他

if (bnewid == true)

}//使用者都沒有開啟過excel程序,則直接kill掉他

else}}

}

Web應用系統中關閉Excel程序

在web系統中呼叫excel操作後,關閉excel程序是個老問題 試了幾種方法都無效,最後還是得採用kill程序的方案,不過跟強行kill所有excel程序相比,下面的方案更為合理。程式只kill當前物件相應的excel程序。dllimport user32.dll setlasterror tru...

原創 C 生成Excel,徹底關閉程序

剛剛研究解決c 中生成excel後無法終止程序的問題。網上的2種方法 1 gc.collect 不一定有效 我這裡一定不有效 2 孟憲會的kill方法 會關掉所有excel程序。研究改進了一下kill方法,如下 foreach process p in process.getprocessesbyn...

c 怎麼關閉Excel

1 如果是直接用excel建立乙個新例項,然後用show 來開啟,那就用close 關閉 2 如果是以程序的方式開啟excel這個程式,那麼直接按excel本身右上角的關閉按鈕關閉就行 3 如果是嵌入到winform的話,可以用一下方法 excel.workbooks obooks excel.wo...