Scriptom(groovy)离开Excel进程运行 – 我做错了什么?
我正在使用Groovy 1.7.0的Scriptom扩展,在Windows XP下使用Excel 2007自动执行一些处理。
这似乎总是让Excel进程运行,尽pipe在excel的activeX对象上我退出了。 (在Scriptom示例文档中也有对这种现象的引用。)
代码如下所示:
import org.codehaus.groovy.scriptom.ActiveXObject; def xls = new ActiveXObject("Excel.Application") xls.Visible = true // do xls stuff xls.Quit()
可见的Excel窗口确实消失了,但是任务pipe理器中还剩下一个EXCEL进程(并且每次运行脚本时都会有更多的进程堆积起来)。
没有错误信息或例外。
任何人都可以解释为什么Excel进程留下,有没有办法阻止它发生?
这工作:
xls.Quit() Scriptom.releaseApartment()
javadocs状态:
在某些情况下,JVM可以在清理所有内容之前closures,这可能会导致自动化服务器(特别是Excel)挂起。 在脚本退出之前调用它以从自动服务器获得正确的行为。
看起来你缺less了
xls.release();
就像在这里完成的一样。