我最近在工作中开始了一个新项目,我想使用 JavaScript 进行一些工作。这是我第一次接触 JS,我已经在为一个引用文献而苦恼了。
我正在尝试使用 JS 打开工作簿(Excel),但它受密码保护。我不知道传递可选对象(例如 "Password:=***"
)的正确语法是什么。这是我所拥有的:
function test() {
var Excel = new ActiveXObject("Excel.Application");
var Location = "W:/MyFolder/MyFile.xlsm"
Excel.Visible = true;
var obj = Excel.Workbooks.Open(Location:="****");
}
它工作正常,它按预期打开文件,但我无法添加密码变量 - 例如:
var obj = Excel.Workbooks.Open(Location, Password:="****");
有什么想法吗?
最佳答案
问题是似乎没有一种方法可以省略 JScript
和 ActiveX
函数的可选参数。只需省略它们,如下所示:
var obj = Excel.Workbooks.Open(Location, , , , "password");
是 JScript
中的语法错误。
使用undefined
似乎会导致ActiveX
函数中的0
。所以
var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
将不起作用,因为第四个参数 Format
不能为 0
。根据Workbooks.Open Method (Excel),它必须是1
到6
因此,唯一的方法似乎是不省略,而是为它们提供可能的值:
var obj = Excel.Workbooks.Open(Location, 0, false, 1, "password");
会起作用的。
<小时/>编辑:
在这种特殊情况下,由于所有可选参数都是 System.Object,因此为可选参数提供 null
对我来说是可行的:
var obj = Excel.Workbooks.Open(Location, null, null, null, "password");
关于javascript - 使用 JavaScript 打开受密码保护的 Excel 工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39546806/