2016-09-17 34 views
0

私は最近、JavaScriptで少し作業したいと思っている仕事で新しいプロジェクトを開始しました。 JSとの私の最初の連絡です。私は既に1つのリファレンスで苦労しています。JavaScriptでパスワード保護されたExcelブックを開く

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:="****"); 

任意のアイデア?

+0

可能な重複javascript](http://stackoverflow.com/questions/11796093/named-parameters-in-javascript) – GSerg

答えて

0

チェックアウトthe Workbook.Open MSDN page。基本的にパスワードは第5引数として期待されます。

var obj = Excel.Workbooks.Open(Location, missing, missing, missing, "****"); 

2番目〜4番目の引数を欠落/ nullとして指定できます。 javascriptでこれを行う方法がわからない。 PowerShellでは、それは$missing = [System.Reflection.Missing]::ValueだとC#で、それはType.Missing

+0

あなたの答えをありがとう。私はmsdn .openとfamilliarですが、JSの構文に問題があります - 私はJSでそれを適用することはできません:) "欠けている"パラメータは意味がありますが、動作しません( "どちらもnull")... – Doctore

1

だ問題はJScriptActiveX -functionsでオプションの引数を省略するための方法ではないことがあるようだということです。次のように省略してください:

var obj = Excel.Workbooks.Open(Location, , , , "password"); 

は、JScriptの構文上の誤りです。

undefinedを使用すると、0ActiveX -functionsになるようです。四番目の引数Format0することはできませんので、だから、

var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password"); 

は動作しません。

var obj = Excel.Workbooks.Open(Location, 0, false, 1, "password"); 

は動作します:それはそう唯一の方法はないを省略することではなく、彼らのために可能な値を引き渡すためにあるように思わWorkbooks.Open Method (Excel)

に応じ6から1でなければなりません。


編集:この特別な場合

、すべてのオプションの引数がSystem.Object秒なので、オプションの引数にnull引き渡すが、私の作品:で[名前付きパラメータの

var obj = Excel.Workbooks.Open(Location, null, null, null, "password"); 
+0

Fantastic ...それは働いた:) – Doctore

関連する問題