javascript - 使用 JavaScript 打开受密码保护的 Excel 工作簿

标签 javascript excel vba

我最近在工作中开始了一个新项目,我想使用 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:="****");

有什么想法吗?

最佳答案

问题是似乎没有一种方法可以省略 JScriptActiveX 函数的可选参数。只需省略它们,如下所示:

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),它必须是16

因此,唯一的方法似乎是省略,而是为它们提供可能的值:

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/

相关文章:

javascript - 在 JS 中声明多个私有(private)类方法时,我收到 ESLINT 警告,为什么?

vba - Excel VBA 脚本中的对象定义错误

vba - 无法在 Word 文档中使用 Visual Basic 抓取列表框

javascript - 失败 : unknown error: Element is not clickable at point (x, x) - Angular/Protractor

javascript - 让 promise 在 JavaScript switch/case 中工作

对象的 Javascript 作用域问题(this)

java - 如何读取应用服务器上存储的Excel表格

Excel-具有搜索功能的超链接

ms-access - Access 2007 一对多关系计数

vba - Excel VBA 优化循环