Tôi đang làm việc trên tiện ích Windows 7 cần kéo dữ liệu từ tài liệu excel. Vấn đề là, là quá trình Excel sẽ không dỡ bỏ sau khi tôi đã lấy dữ liệu tôi cần.Tiện ích Windows 7 không giải phóng đối tượng ActiveX
Dưới đây là đoạn code tôi sử dụng trong chức năng khởi tạo của tôi:
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;
này là tất cả được bọc trong một khối try-catch và tôi có thể xác minh rằng nó là tất cả thành công. Tất cả các xóa và bài tập null là nỗ lực của tôi để phát hành bất kỳ tài liệu tham khảo cho các đối tượng COM, nhưng tôi dường như thiếu một cái gì đó. Có cách nào tôi có thể buộc quá trình Excel để dỡ bỏ?
Lưu ý rằng tôi đã thử nghiệm này chỉ là bây giờ trong một tiện ích máy tính để bàn và có thể khẳng định nó không loại bỏ quá trình này từ danh sách trình. –
Tuyệt vời - xin lỗi vì đã mất một thời gian để tôi thử nghiệm, nhưng nó hoạt động như mong đợi. – Eclipse
@Eclipse: không có vấn đề gì cả :-) –