Foros del Web » Programando para Internet » Javascript »

Cerrar EXCEL.exe con javascript

Estas en el tema de Cerrar EXCEL.exe con javascript en el foro de Javascript en Foros del Web. Hola, tengo problemas para cerrar una aplicación mediante javascript : <script> EXCEL = new ActiveXObject("Excel.Application"); DIR = "D:\\Hattrick\\Jouth MW\\formato html\\DATA\\team"; LIBRO = EXCEL.Workbooks.OPEN(DIR,false,false); HOJA = ...
  #1 (permalink)  
Antiguo 24/01/2008, 08:56
 
Fecha de Ingreso: enero-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Cerrar EXCEL.exe con javascript

Hola, tengo problemas para cerrar una aplicación mediante javascript:

<script>
EXCEL = new ActiveXObject("Excel.Application");
DIR = "D:\\Hattrick\\Jouth MW\\formato html\\DATA\\team";
LIBRO = EXCEL.Workbooks.OPEN(DIR,false,false);
HOJA = LIBRO.Worksheets(1);
HOJA.Application.Visible = true;
alert("¿Continuar?");
LIBRO.Close(true);
EXCEL.Application.Quit();
</script>

Con la primera linea abro excel con el nombre EXCEL.
Tomo DIR como la dirección donde está mi archivo excel.
Abro en la variable LIBRO el archivo excel que está en la direccion DIR.
Selecciono la primera hoja de LIBRO y para referirme a ella uso HOJA.
Hago que dicha hoja se muestre visible para comprobar que todo lo anterior se ha hecho bien.
Muestro un mensaje de alerta para que hasta que no pulse aceptar no continue el proceso.
Cierro el libro LIBRO.
Y se supone que con la linea final cierro la aplicación EXCEL.exe.
Pero esto no ocurre, si pulso ctrl+alt+supr y miro en procesos aparece EXCEL.exe.
Si cierro el archivo htm sigue permaneciendo ahí. Si vuelvo a ejecutar el archivo htm se crea un segundo EXCEL.exe. El cual tampoco se cerrará nunca, y así sucesicamente hasta el infinito y mas allá si siguiera abriendo y cerrando el archivo htm.
  #2 (permalink)  
Antiguo 24/01/2008, 09:28
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Cerrar EXCEL.exe con javascript

Hola Mark_Wallace

Que código más raro, ¿seguro que es JavaScript?

Saludos,
  #3 (permalink)  
Antiguo 24/01/2008, 09:36
 
Fecha de Ingreso: enero-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Cerrar EXCEL.exe con javascript

Creo que si, no? el programa funciona y lo hace todo bien, pero el EXCEL.exe se mantiene abierto, no si si puede ser por que la ultima linea el .Quit() no vale en este sistema, la cosa es que no me sale ningun mensaje de error, y todo funciona correctamente, pero necesito cerrar el EXCEL.exe, por que si sigo haciendo más cosas me empiezan a surgir los problemas.

Necesito una solución, por que sino no puedo continuar con mi proyecto.
  #4 (permalink)  
Antiguo 24/01/2008, 14:24
 
Fecha de Ingreso: enero-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Cerrar EXCEL.exe con javascript

Alguien que me ayude con mi problema, gracias
  #5 (permalink)  
Antiguo 24/01/2008, 14:46
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Re: Cerrar EXCEL.exe con javascript

probe tu codigo y me pasa lo mismo, se queda corriendo el proceso EXCEL.EXE

Me encomende a san google y me encontre varias paginas en donde mencionan el mismo problema y dan varias soluciones, pero todas para Visual Basic

http://www.tushar-mehta.com/excel/vba/xl_doesnt_quit/
http://mail.python.org/pipermail/python-list/2003-October/230874.html


Segun ellos se debe ejecutar la funcion QUIT del objeto EXCEL (lo que estas haciendo tu) para que se cierre correctamente, pero ya vimos que no funciona

Pero encontre una solucion "poco elegante". La idea se me ocurrio cuando dijiste esto:

Cita:
Y se supone que con la linea final cierro la aplicación EXCEL.exe.
Pero esto no ocurre, si pulso ctrl+alt+supr y miro en procesos aparece EXCEL.exe.
Si cierro el archivo htm sigue permaneciendo ahí. Si vuelvo a ejecutar el archivo htm se crea un segundo EXCEL.exe. El cual tampoco se cerrará nunca, y así sucesicamente hasta el infinito y mas allá si siguiera abriendo y cerrando el archivo htm.
Desde una pagina (excel.html) abro otra pagina que contiene TU CODIGO (excel2.html). Y en la segunda pagina, agregue el codigo para cerrar esa ventana ( window.close(); ). Y esto me funciono, ya no se queda corriendo el proceso EXCEL.EXE

excel.html

Código:
<html>
<script>
window.open("excel2.html");
</script>
</html>
excel2.html

Código:
<html>
<script>
EXCEL = new ActiveXObject("Excel.Application");
DIR = "c:\\temp\\archivo.xls";
LIBRO = EXCEL.Workbooks.OPEN(DIR,false,false);
HOJA = LIBRO.Worksheets(1);
HOJA.Application.Visible = true;
alert("¿Continuar?");
LIBRO.Close(true);
EXCEL.Application.Quit();
window.close();
</script>
</html>
Prueba y nos avisas si te funciono
  #6 (permalink)  
Antiguo 25/01/2008, 03:19
 
Fecha de Ingreso: enero-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Cerrar EXCEL.exe con javascript

Que va, me sigue pasando igual, a vosotros os funciona perfectamente mi código?
No se os mantiene abierto EXCEL.exe en procesos activos?
Si os funciona a vosotros lo mismo es que es por mi configuracion. Podria ser?.
  #7 (permalink)  
Antiguo 25/01/2008, 04:45
 
Fecha de Ingreso: enero-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Cerrar EXCEL.exe con javascript

Por fin lo he solucionado, el problema estaba en la variable EXCEL, que al parecer crearía conflictos con el propio programa que se llama EXCEL, tomando otra variable, por ejemplo oExcel se soluciona el problema, por cierto, si has creado algun archivo excel usando la variable EXCEL ese archivo ya lleva el conflicto en su codigo y aunque cambies el codigo en tu htm poniendo otra variable, su abres este archivo seguiras teniendo el mismo problema, asi que tendras que abrir uno nuevo con la variable solucionada, quizas se pueda arreglar el archivo excel de otra manera, pero la verdad es que no me hace falta, creo uno nuevo y adios al problema. Tened cuidado con las variables que elijais que pueden joderos vivos sin entender por que, llevo 2 días con este problema estudiando las sintaxis del open del close del saveas, XD, para partirse.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:18.