2010-03-17 7 views
0

J'utilise l'extension Scriptom à Groovy 1.7.0 pour automatiser certains traitements en utilisant Excel 2007 sous Windows XP.Scriptom (groovy) laisse Excel en cours d'exécution - est-ce que je fais quelque chose de mal?

Cela semble toujours laisser un processus Excel en cours d'exécution malgré l'arrêt de mon appel sur l'objet excel activeX. (Il y a une allusion à ce phénomène dans la documentation exemple Scriptom aussi.)

code

ressemble:


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

// do xls stuff 

xls.Quit() 

La fenêtre Excel visible ne disparaît, mais un processus EXCEL est laissé dans le gestionnaire de tâches (et plus de processus s'accumulent à chaque exécution du script).

Il n'y a pas de message d'erreur ou d'exception. Est-ce que quelqu'un peut expliquer pourquoi le processus Excel est laissé de côté et y a-t-il un moyen de l'empêcher?

+0

sauf s'il s'agit de votre site Web, ce gars a le même problème. http://groovy.codehaus.org/Scriptom+1.2 –

+0

Cela semble être le même problème mais j'utilise la version de scriptom fournie avec groovy 1.7.0, qui est plus récent que 1.2. –

Répondre

4

Cela fonctionne:

xls.Quit() 
Scriptom.releaseApartment() 

L'état de javadocs:

Dans certains cas, la machine virtuelle Java peut fermer avant que tout soit nettoyé, ce qui peut laisser des serveurs d'automatisation (en particulier Excel) pendaison. Appelez cela avant que votre script se termine pour obtenir comportement correct de l'automatisation serveurs.

0

On dirait que vous manquez

xls.release(); 

comme il est fait here.

Questions connexes