2010-03-17 60 views
0

我使用Groovy 1.7.0的Scriptom擴展在Windows XP下使用Excel 2007自動執行一些處理。Scriptom(groovy)離開Excel進程運行 - 我做錯了什麼?

儘管我在excel的activeX對象上退出,但這似乎總是讓Excel進程運行。 (有一個提到過這一現象的Scriptom例如文檔中了。)

代碼如下所示:


import org.codehaus.groovy.scriptom.ActiveXObject; 
def xls = new ActiveXObject("Excel.Application") 
xls.Visible = true 

// do xls stuff 

xls.Quit() 

可見Excel窗口不會消失,而是一個EXCEL處理留在任務管理器(和腳本的每次運行都會有更多的進程累積起來)。

沒有錯誤信息或例外。

任何人都可以解釋爲什麼Excel進程留下,有什麼辦法來防止它發生?

+0

除非這是你的網站,這傢伙有同樣的問題。 http://groovy.codehaus.org/Scriptom+1.2 – 2010-03-17 14:46:49

+0

這似乎是相同的問題,但我使用的是與groovy 1.7.0捆綁在一起的scriptom版本,我認爲它比1.2版更新。 – 2010-03-17 15:22:47

回答

4

這工作:

xls.Quit() 
Scriptom.releaseApartment() 

的javadoc狀態:

在某些情況下,JVM可以關閉 一切都清理之前,這 可以離開自動化服務器 (尤其是Excel中)掛。在您的腳本退出前調用此 以從自動化 服務器獲得 正確的行爲。