Totalmente de acuerdo....
 
Particularmente no advertí que Mauro estaba desarrollando una aplicación Web. 
De ser asi hay metodos mucho mas eficientes para generar Excels que usar 
Excel.Application.
 
Si esto es usado del lado cliente con WinForms, la metodología que aqui hemos 
planteado sería la correcta.
Saludos cordiales
CarlosMag



From: [email protected]: [email protected]: [vbnet] xcelDate: 
Fri, 19 Dec 2008 19:05:21 -0200


Hola gente,
 
No voy a dar una solucion, mas bien al contrario.
 
Tengan en cuenta que Excel NO es una aplicacion para funcionar en el servidor, 
es una aplicacion pensada para ser usada por un usuario de carne y hueso, a su 
velocidad, de a una instancia por vez, etc.
 
Creo que es una mala decision de arquitectura usar Excel en el servidor. 
Distinto es el caso de una aplicacion Winforms que utiliza el Excel del cliente.
 
Hay componentes que permiten manipular archivos Excel en el contexto de un 
servidor.
 
Saludos
 

Carlos Peix


De: [email protected] [mailto:[email protected]] En nombre de Carlos Bernardo 
MaggiottiEnviado el: Jueves, 18 de Diciembre de 2008 11:25 a.m.Para: vbnet List 
MemberAsunto: [vbnet] xcel
Yo lo resolvi de la siguiente manera. Quiza no sea muy prolijo pero me 
funciono. 1 - La idea es almacenar la referencia al Proceso en el que corre la 
isntancia de Excel 'Memory Proc referenceDim oProc As 
System.Diagnostics.Process2 - En el momento de crear la instancia Excel 
mandamos a obtener la referecnia oExcel = New Excel.Application'Get the Recent 
Excel InstanceCall GetProc()3 - Este seria el GetProc() en el que tomamos el 
ultimo proceso creado (asumimos que es nuestro Excel) Private Sub GetProc()   
Dim dStartTime As DateTime = Convert.ToDateTime("01-01-2006 00:00:00")   Dim 
oProcs() As System.Diagnostics.Process   Dim i As Integer   oProcs = 
System.Diagnostics.Process.GetProcessesByName("EXCEL")   For i = 0 To 
oProcs.Length - 1      If dStartTime < oProcs(i).StartTime() Then         
dStartTime = oProcs(i).StartTime()         oProc = oProcs(i)      End If   
NextEnd Sub 4 - Viendo esto un poco yo tomaria el valor de la variable 
dStartTime instantes antes de ejecutar 'oExcel = New Excel.Application' (fé de 
errata) 5 - Teniendo el proceso referenciado, podrémos entonces hacer lo 
siguiente. (En un Finalize) Call KillProc() Siendo KillProc() Private Sub 
KillProc()   oProc.Kill()End Sub Saludos y espero que les sirva. Si alguien 
aporta algo mejor pues bienvenido sea... CarlosMag

From: [email protected]: [email protected]: [vbnet] ExcelDate: 
Thu, 18 Dec 2008 11:02:06 -0200





Mauro:
Yo en lo personal lamentablemente ya renegué con eso y mucho pero no encontré 
forma de solucionarlo, sigue ahí cada tanto explotando el server porque se 
queda sin memoria cuando muchos reportes se exportan seguido. Tené en cuenta 
que si bien el proceso queda, un par de horas después (por lo menos en mi caso) 
se mata solo.
 
Si alguien encuentra el “key” de la cuestión, me sumo al agradecimiento.
 
Saludos.
 
 

García Máximo
Socio MUG Nº 2275
[email protected]




From: [email protected] [mailto:[email protected]] On Behalf Of Mauro AndreaSent: 
Jueves, 18 de Diciembre de 2008 11:45 a.m.To: vbnet List MemberSubject: [vbnet] 
Excel
 

Hola a todos....

 

Les comento, estoy trabajando en una aplicación que exporta de forma automática 
datos a una planilla en Excel y después envía la planilla zipeada por mail.

 

El tema es que a pesar de guardar el libro, cerrarlo y cerrar el Excel con su 
método "quit" éste sigue quedando en memoria por lo que tengo que ejecutar un 
comando para que mate el proceso que quedó en la memoria....

 

Alguno ya renegó con ésto y me puede pasar algo de info?

 

Gracias.

 
Mauro AndreaNewdev S.R.L. - Tecnología InformáticaNueva dirección: Rioja 1151 
Piso 3 Of. 3Tel. (0341) 530-0572 / 425-9808MSN: 
[email protected]

 

¡Aprendé como hacerlo aquí! Llamá a telefonos fijos desde tu Messenger
_________________________________________________________________
Enterate todas las novedades del mundo del deporte por MSN.
http://msn.foxsports.com/fslasc 

Responder a