function gbid(s) {
return document.getElementById(s);
}
function GetData(cell,row) {
var excel = new ActiveXObject("Excel.Application");
var excel_file = excel.Workbooks.Open("Z:/SunCenter/Medicare Customer Experience/Hub/CaliforniaHUB/Plans/H0562_2013_082_EOC.xlsx");
var excel_sheet = excel.Worksheets("Sheet1");
gbid('span1').innerText = excel_sheet.Cells(1191,1).Value;
gbid('span2').innerText = excel_sheet.Cells(1192,1).Value;
gbid('span3').innerText = excel_sheet.Cells(1192,3).Value;
excel_file.Close()
excel.Quit()
}
每当javascript运行(onload)时,它就会在taskmanager / Processes中创建一个进程。问题是它在使用后不会关闭它。当我再次运行时,它会创建另一个。现在它只是从excel文件中提取信息,它工作正常,但它不会关闭任务管理器中的exe文件。我认为excel_file.close
会这样做,我甚至会放入另一个excel.quit
,以防万一。对不起,我只是想确保它有效。我现在甚至在冲突的情况下拿走了一个,但是虚无...有什么帮助吗?
答案 0 :(得分:4)
您需要致电excel.Application.Quit();
而不是excel.Quit();
答案 1 :(得分:1)
根据Microsoft的说法,因为当您致电Quit()
时,您仍然持有对Excel的引用,Excel无法完全关闭。建议拨打Quit()
,设置excel = null
,然后在短暂的等待后运行CollectGarbage
:
var idTmr = "";
function GetData() {
//...
excel.Quit();
excel = null;
idTmr = window.setInterval("Cleanup();",1);
}
function Cleanup() {
window.clearInterval(idTmr);
CollectGarbage();
}
原始资料来源: