Scriptom(groovy)让Excel进程运行 - 我做错了吗?

时间:2010-03-17 14:03:33

标签: excel groovy scriptom

我正在使用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流程会被遗忘,有没有办法阻止它发生?

2 个答案:

答案 0 :(得分:4)

这有效:

xls.Quit()
Scriptom.releaseApartment()

javadocs状态:

  

在某些情况下,JVM可以关闭   在一切都被清理之前,哪个   可以离开自动化服务器   (特别是Excel)挂。叫这个   在脚本退出之前获取   自动化的正确行为   服务器

答案 1 :(得分:0)

看起来你不见了

xls.release();

就像完成了here