台灣最大程式設計社群網站
線上人數
752
 
會員總數:243161
討論主題:187981
歡迎您免費加入會員
討論區列表 >> VB.NET >> Excel.Application 無法正常關閉Porcess
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Excel.Application 無法正常關閉Porcess
價值 : 120 QP  點閱數:3054 回應數:5

樓主

San
初學者
2 23
631 65
發送站內信

各位前輩大大:
小弟遇到了一個很頭痛的問題, user client用網頁呼叫server上執行Excel.
讀完檔後再關閉. 但卻發現Excel.exe process在執行 set nothing與 Quit後仍存在.

觀察後發現很久才會停掉, 網路上也有不少討論這問題的方法, 但試過幾種建議後依然
完全關不掉 Excel (小弟用的是office 2003).

只好跟各位前輩們求救, 是否有另外的方法可以確實關閉被開啟的Excel.exe process? 感恩~


開啟與關閉的source code如下:
'==============================================
'宣告並開啟Execl物件
Dim oExcel As Excel.ApplicationClass
Dim oBook As Excel.WorkbookClass
Dim oBooks As Excel.Workbooks
Dim oSheet As Excel.Worksheet


'建立Excel物件並開啟C:\01.xls中的Sheet1
oExcel = CreateObject("Excel.Application")
'oExcel.Visible = True
oBooks = oExcel.Workbooks
oBook = oBooks.Open("C:\Table5.xls")
oSheet = oBook.Worksheets("RALIST")


'==============================================
'關閉 Application.Excel

oBook.Close(False)
System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook)
oBook = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks)
oBooks = Nothing
oExcel.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel)
oSheet = Nothing
oExcel = Nothing
GC.Collect()

本篇文章發表於2010-08-05 17:53
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

JoJo
檢舉此回應
在 Server 端存取 Excel 檔案的利器:NPOI Library
本篇文章回覆於2010-08-05 19:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

sklskl
檢舉此回應



再 KillProcess("EXCEL")

試試看...
本篇文章回覆於2010-08-05 22:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

黑熊
檢舉此回應
我也有一樣的問題,找答案找了好久啊,終於找到解決方法了,感謝sklskl 大大!!!
本篇文章回覆於2018-04-03 11:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

黑熊
檢舉此回應
使用下列程式碼可以關掉由VB生成的Excel,不會像殺掉執行續那樣把所以Excel一起關閉,但不確定這樣會不會產生其他問題




本篇文章回覆於2018-04-11 17:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

黑熊
檢舉此回應
修改了一下二樓的方法

雖然這樣硬幹不是很好的方法,但是網路上好像也沒有其他有效的解法
所以還是用強制結束程式的方法來做,但是修改之後的方法不會把所有Excel都關閉了
只會關閉由VB.NET所建立的Excel


本篇文章回覆於2018-04-18 16:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.