Foros del Web » Programación para mayores de 30 ;) » .NET »

Cerrar aplicación Excel

Estas en el tema de Cerrar aplicación Excel en el foro de .NET en Foros del Web. Hola, estoy trabajando con Excel desde VB.Net. El problema es que cuando cierro la aplicación desde Excel, por código, se queda igualmente en memoria. Ejemplo: ...
  #1 (permalink)  
Antiguo 17/01/2007, 09:19
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 6 meses
Puntos: 156
Pregunta Cerrar aplicación Excel

Hola,

estoy trabajando con Excel desde VB.Net. El problema es que cuando cierro la aplicación desde Excel, por código, se queda igualmente en memoria.

Ejemplo:

Cita:
Dim m_Excel As Excel.Application

m_Excel = New Excel.Application
.......
......
m_Excel.Quit()
como se debe cerrar o 'matar' el proceso? Ya que con "Quit" no me sirve.

Saludos
  #2 (permalink)  
Antiguo 17/01/2007, 13:10
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 2 meses
Puntos: 1
De acuerdo Re: Cerrar aplicación Excel

Una vez encontré un código, el cual te suministro, pero no encontré la liga:


Código HTML:
// m_App es la aplicación de excel
if( m_App !=  null)
{
	m_App.Quit();
	System.Diagnostics.Process[] pProcess; 
	pProcess = System.Diagnostics.Process.GetProcessesByName("Excel");

	foreach(System.Diagnostics.Process oPro in pProcess)
	{
		//antes de iniciar el proceso obtengo la fecha en que inicie el 
		//proceso para detener todos los procesos de excel que inicio
		//mi código durante el proceso
		if(oPro.StartTime >= this.m_FechaHora)
			oPro.Kill();
	}
}
Saludes
__________________
Leer es Saber, REEL.
Mi Blog

Última edición por reel; 08/03/2007 a las 11:35
  #3 (permalink)  
Antiguo 17/01/2007, 13:16
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 2 meses
Puntos: 1
Re: Cerrar aplicación Excel

Ya encontré la liga.

Automating MS Excel Using Visual Studio

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #4 (permalink)  
Antiguo 17/01/2007, 13:33
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 6 meses
Puntos: 156
Re: Cerrar aplicación Excel

ok, muchas gracias Reel. Mañana lo pruebo.

Saludos!
  #5 (permalink)  
Antiguo 19/01/2007, 10:03
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 6 meses
Puntos: 156
Re: Cerrar aplicación Excel

Ya lo he probado y funciona perfecto.

Gracias Reel!

saludos
  #6 (permalink)  
Antiguo 08/03/2007, 11:32
Avatar de vangh  
Fecha de Ingreso: febrero-2007
Mensajes: 66
Antigüedad: 17 años, 1 mes
Puntos: 1
De acuerdo Re: Cerrar aplicación Excel

Eres genial reel!
yo tambien tenia el mismo problema aunque en Visual Basic..
pero todo funcionó a la perfeccion. muchas gracias. pego el codigo en vb por si alguien lo requiere:

Código:
        Dim proceso As System.Diagnostics.Process()
        proceso = System.Diagnostics.Process.GetProcessesByName("EXCEL")

        For Each opro As System.Diagnostics.Process In proceso
            'antes de iniciar el proceso obtengo la fecha en que inicie el 
            'proceso para detener todos los procesos que excel que inicio
            'mi código durante el proceso
            If opro.StartTime >= fechaInicioProceso Then
                opro.Kill()
            End If
        Next
  #7 (permalink)  
Antiguo 26/03/2007, 01:54
 
Fecha de Ingreso: marzo-2007
Mensajes: 2
Antigüedad: 17 años
Puntos: 0
Re: Cerrar aplicación Excel

Perdona vangh
tengo el mismo problema que tenias y tu salvo que a mi no m deja poner System.Diagnostics.Process, imagino que me faltara alguna referencia.
Podrias ayudarme?
  #8 (permalink)  
Antiguo 26/03/2007, 06:58
 
Fecha de Ingreso: marzo-2007
Mensajes: 2
Antigüedad: 17 años
Puntos: 0
Re: Cerrar aplicación Excel

OK
Ya lo tengo resuelto sencillamente cierro los procesos excel con

dim excel as excel.application

Excel.Workbooks.Close
  #9 (permalink)  
Antiguo 28/03/2007, 12:55
Avatar de vangh  
Fecha de Ingreso: febrero-2007
Mensajes: 66
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: Cerrar aplicación Excel

sanka

El codigo que puse es para VB.NET, en VB6 no funciona...
Porque recuerdo que en VB6 solo era poner esa instrucción, pero en .NET no se porque razon no mata los procesos, a menos que utilize la función que se posteo anteriormente.

Saludos
  #10 (permalink)  
Antiguo 24/08/2008, 19:56
 
Fecha de Ingreso: agosto-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Cerrar aplicación Excel

Estimados...
Soy nuevo en el foro y encontré este codigo que les será de utilidad

La deben llamar para cerrar el Libro, la hoja y el excel ....

Dim oXL
oXL = CreateObject("Excel.Application")
oXL.Visible = False

If Not oXL Is Nothing Then
EiminaReferencias(oXL)
End If



Private Sub EiminaReferencias(ByRef Referencias As Object)
Try
'Bucle de eliminacion
Do Until _
System.Runtime.InteropServices.Marshal.ReleaseComO bject(Referencias) <= 0
Loop
Catch
Finally
Referencias = Nothing
End Try
End Sub

buenas noches ... StgoChilito
  #11 (permalink)  
Antiguo 26/08/2009, 09:20
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Re: Cerrar aplicación Excel

Cita:
Iniciado por reel Ver Mensaje
Una vez encontré un código, el cual te suministro, pero no encontré la liga:


Código HTML:
// m_App es la aplicación de excel
if( m_App !=  null)
{
	m_App.Quit();
	System.Diagnostics.Process[] pProcess; 
	pProcess = System.Diagnostics.Process.GetProcessesByName("Excel");

	foreach(System.Diagnostics.Process oPro in pProcess)
	{
		//antes de iniciar el proceso obtengo la fecha en que inicie el 
		//proceso para detener todos los procesos de excel que inicio
		//mi código durante el proceso
		if(oPro.StartTime >= this.m_FechaHora)
			oPro.Kill();
	}
}
Saludes



Esta solución también es buena para cuando se cargan excel grandes a traves
de una pagina en asp. Lo ideal es que al finalizar la carga se cierren todas las
referencias para que no quede el proceso pero, que pasa si el usuario cierra
la página a la mitad?¿ quedaría el proceso en el servidor corriendo.

Y que pasa si muchos usuario hacen lo mismo?

entonces lo ideal es antes de comenzar a leer, ver si hay procesos desde uno o 2 dias para eliminarlo.

y luego leer y cerrar si es que el usuario llega hasta el final del proceso.



Saludos
  #12 (permalink)  
Antiguo 08/10/2009, 11:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cerrar aplicación Excel

Estimados amigos:
Espero me puedan ayudar con su experiencia.

Tengo una aplicacion VB.NET que crea hojas Excel La primera vez que lo ejecuta lo hace en forma correcta. Al final de esta primera ejecución, ejecuto el quit para cerrar el Excel, es ahi donde sale un mensaje de cancelación del Excel., pero ya genero todos los excel requeridos en foma correcta. Si quiero volver ejecutar nuevamente, tengo que salir totalmente de la aplicación y volver a ejecutar.

Lo que he notado, que cuando lo ejecuto con perfil de administrador si termina el proceso en forma correcta al ejecutarse el quit y no necesito salir del aplicativo para ejecutar nuevamente.

Pero obviamente los usuarios que tengan este aplicativo no deberían tener perfil de administrador.

Que me aconsejan estamados amigos.

Saludos

Manuel
  #13 (permalink)  
Antiguo 22/10/2009, 16:51
 
Fecha de Ingreso: septiembre-2009
Mensajes: 31
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Re: Cerrar aplicación Excel

Cita:
Iniciado por reel Ver Mensaje
Una vez encontré un código, el cual te suministro, pero no encontré la liga:


Código HTML:
// m_App es la aplicación de excel
if( m_App !=  null)
{
	m_App.Quit();
	System.Diagnostics.Process[] pProcess; 
	pProcess = System.Diagnostics.Process.GetProcessesByName("Excel");

	foreach(System.Diagnostics.Process oPro in pProcess)
	{
		//antes de iniciar el proceso obtengo la fecha en que inicie el 
		//proceso para detener todos los procesos de excel que inicio
		//mi código durante el proceso
		if(oPro.StartTime >= this.m_FechaHora)
			oPro.Kill();
	}
}
Saludes

Cómo obtienes la fecha en que se inició el proceso?.. Además, en dado caso a mi me da problemas ya que lo trabajo con WebForms y el TaskManager no actualiza hasta que se hace un PostBack... es decir, lo cierro, pero queda abierto hasta que haga una consulta a la Base de Datos o cambie una pestaña, en ese momento se cierra.. como que no actualiza, y el Refresh no funciona......

Última edición por darkandres123; 22/10/2009 a las 16:59
  #14 (permalink)  
Antiguo 23/10/2009, 08:21
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: Re: Cerrar aplicación Excel

Antes que inicie a ejecutarse el código que levanta la aplicación de excel puedes usar objeto DateTime:

Código .net:
Ver original
  1. DateTime.Now

No comprendo porque dices que no te funciona con webform, no tengo ideas lo que estás haciendo o quieres hacer, pero me imagino que los que haces es que al recibir el postback levantas la aplicación de excel realizas tu procesos y luego terminas la aplicación. Todo esto se puede realizar en un sólo postback.

Saludos,
__________________
Leer es Saber, REEL.
Mi Blog

Última edición por reel; 23/10/2009 a las 08:24 Razón: Repuesta Icompleta
  #15 (permalink)  
Antiguo 03/06/2010, 11:07
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Re: Cerrar aplicación Excel

Cita:
Iniciado por vangh Ver Mensaje
Eres genial reel!
yo tambien tenia el mismo problema aunque en Visual Basic..
pero todo funcionó a la perfeccion. muchas gracias. pego el codigo en vb por si alguien lo requiere:

Código:
        Dim proceso As System.Diagnostics.Process()
        proceso = System.Diagnostics.Process.GetProcessesByName("EXCEL")

        For Each opro As System.Diagnostics.Process In proceso
            'antes de iniciar el proceso obtengo la fecha en que inicie el 
            'proceso para detener todos los procesos que excel que inicio
            'mi código durante el proceso
            If opro.StartTime >= fechaInicioProceso Then
                opro.Kill()
            End If
        Next
perdona probe este código y funciona siempre que se pulsa en SI o NO al guardar el libro pero no se como hacer que se ejecute si se pulso previamente la opción CANCELAR
  #16 (permalink)  
Antiguo 03/06/2010, 11:10
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Re: Cerrar aplicación Excel

Perdona probe este código y funciona siempre que se pulsa en SI o NO al guardar el libro pero no se como hacer que se ejecute si se pulso previamente la opción CANCELAR
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 02:35.