Estoy trabajando en un gadget de Windows 7 que necesita extraer datos de un documento de Excel. El problema es que el proceso de Excel no se descargará una vez que haya recuperado los datos que necesito.Windows 7 Gadget no libera el objeto ActiveX
Aquí está el código que utilizo en mi función de inicialización:
var Excel = new ActiveXObject("Excel.Application");
Excel.Visible = false;
Excel.DisplayAlerts = false;
var workbooks = Excel.Workbooks;
var workbook = workbooks.Open("\\\\SERVER\\Documents\\Sample.xlsx", 0, true);
var activesheet = workbook.ActiveSheet;
var cell = sheet.Cells(1, 1);
var value = cell.Value;
document.getElementById("content").innerHTML = value;
delete value;
value = null;
delete cell;
cell = null;
delete activesheet;
activesheet = null;
delete workbook;
workbook = null;
delete workbooks;
workbooks = null;
Excel.Quit();
delete Excel;
Excel = null;
Esto es todo envuelto en un bloque try-catch y puedo comprobar que todo está sucediendo. Todas las eliminaciones y las asignaciones nulas son mi intento de liberar cualquier referencia a los objetos COM, pero parece que me falta algo. ¿Hay alguna forma en que pueda forzar el proceso de Excel para descargar?
Tenga en cuenta que esto sólo he probado ahora en un gadget de escritorio y puedo confirmar si remueve el proceso de la lista de procesos. –
Impresionante: disculpe, me tomó un tiempo llegar a las pruebas, pero funciona como esperaba ahora. – Eclipse
@Eclipse: no hay problema en absoluto :-) –