用JavaScript打开受密码保护的Excel工作簿
我最近在工作中开始了一个新的项目,我想用JavaScript来做一些工作。 这是我与JS的第一次接触,我已经在挣扎着一个参考。
我试图打开一个工作簿(Excel)使用JS,但它的密码保护。 我不知道什么是适当的语法来传递可选对象,如"Password:=***"
。 这是我有什么:
function test() { var Excel = new ActiveXObject("Excel.Application"); var Location = "W:/MyFolder/MyFile.xlsm" Excel.Visible = true; var obj = Excel.Workbooks.Open(Location:="****"); }
它工作正常,它按预期打开文件,但我不能添encryption码variables – 例如:
var obj = Excel.Workbooks.Open(Location, Password:="****");
有任何想法吗?
问题是似乎没有一种方法可以用JScript
和ActiveX
functions省略可选的参数。 简单地忽略它们,如:
var obj = Excel.Workbooks.Open(Location, , , , "password");
是JScript
一个语法错误。
使用undefined
似乎导致在ActiveX
函数中为0
。 所以
var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
将无法工作,因为第四个参数的Format
不能为0
。 打开方法(Excel)必须是1
到6
所以唯一的办法似乎是不要忽略,而是为他们交出可能的价值:
var obj = Excel.Workbooks.Open(Location, 0, false, 1, "password");
将工作。
编辑:
在这种特殊情况下,因为所有可选参数都是System.Object
,所以为可选parameter passingnull
适用于我:
var obj = Excel.Workbooks.Open(Location, null, null, null, "password");
检出工作簿 。 打开MSDN页面 。 基本上,密码是第五个参数。
var obj = Excel.Workbooks.Open(Location, missing, missing, missing, "****");
您可以指定第2-4个参数为missing / null。 不知道如何在JavaScript中做到这一点; 在PowerShell中$missing = [System.Reflection.Missing]::Value
和在C#中它是Type.Missing