我正在使用Groovy 1.7.0的Scriptom扩展来在Windows XP下使用Excel 2007自动执行某些处理。
尽管我在excel activeX对象上调用quit,但这似乎总是让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 :(得分:4)
这有效:
xls.Quit()
Scriptom.releaseApartment()
javadocs状态:
在某些情况下,JVM可以关闭 在一切都被清理之前,哪个 可以离开自动化服务器 (特别是Excel)挂。叫这个 在脚本退出之前获取 自动化的正确行为 服务器
答案 1 :(得分:0)