在MS JScript中获取Excel的主动实例

时间:2013-12-17 01:56:38

标签: c# msdn excel-interop jscript activexobject

我正在努力翻译一些我写回JScript的C#代码。从长远来看,我需要打开一个Excel工作簿,或者(如果它已经打开)将它带到前面。与C#不同,JScript依赖于伪劣ActiveXObject来获取Excel应用程序的句柄:

var Excel = new ActiveXObject("Excel.Application");

一旦你抓住了对象,API在MSDN适用的所有语言中都非常相似。但是,使用ActiveXObject似乎会创建一个全新的Excel实例

如果我使用以下代码:

var Excel = new ActiveXObject("Excel.Application");
alert(Excel.ActiveSheet === null); // assume alert works as it does in Javascript

并且Excel已经打开,警报将以true的形式返回。此外,任何使用new ActiveXObject("Excel.Application")设置但未被垃圾收集拾取的变量都会导致出现新的EXCEL.EXE进程:

enter image description here

毋庸置疑,所有这些都使我无法检查工作簿是否已经打开,并且随后导致丑陋的“你想打开这个只读”警告出现。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:3)

根据MSDN,您可以使用JScript中的the GetObject function

var Excel = GetObject(null, "Excel.Application");