私は、Excel 7ドキュメントからデータを取り出す必要があるWindows 7ガジェットを開発中です。問題は、必要なデータを取得した後にExcelプロセスがアンロードされないことです。ここでWindows 7ガジェットがActiveXオブジェクトを解放しない
は、私は私の初期化関数で使用しているコードです:
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;
これは、すべてtry-catchブロック内にラップされており、私はそれがすべて成功していますことを確認することができます。すべての削除とnull割り当てはCOMオブジェクトへの参照を解放しようとする試みですが、何か不足しているようです。 Excelのプロセスを強制的にアンロードできる方法はありますか?
注意。 –
恐ろしいです - 残念ながら、これは私がテストに慣れるまでには時間がかかっていましたが、今は期待どおりに動作します。 – Eclipse
@Eclipse:全く問題ありません:-) –