2

次の方法で Web ページからワークブックを作成します。

var thisTable = document.getElementById("mytable3").innerHTML;
       window.clipboardData.setData("Text", thisTable);
       var objExcel = new ActiveXObject ("Excel.Application");
       objExcel.visible = true;
       var objWorkbook = objExcel.Workbooks.Add();
       var objWorksheet = objWorkbook.Worksheets(1);
       objWorkbook.Worksheets(1).Activate;
       objWorksheet.name = "test";
       objWorksheet.Paste;
       objWorksheet.columns.autofit;
       window.clipboardData.setData("Text","");
       objWorkbook.Worksheets(1).SaveAs("%USERPROFILE%\\Desktop\\xxx.xls");

しかし、objWorkbook.Worksheets(1).SaveAs("%USERPROFILE%\\Desktop\\xxx.xls");デスクトップに保存されず、次のエラーが発生します。

SCRIPT1004: Microsoft Excel cannot access the file 'C:\Users\user\Documents\%USERPROFILE%\Desktop\B612F000'. There are several possible reasons:
• The file name or path does not exist.
• The file is being used by another program.
• The workbook you are trying to save has the same name as a currently open workbook.
4

2 に答える 2

1

@PAから。答え私はついに答えを得ました

//For Expand environment
  var wshShell = new ActiveXObject("WScript.Shell");
  var userProfile = wshShell.ExpandEnvironmentStrings("%USERPROFILE%\\Desktop\\test.xls");

  //For Save
  objWorkbook.Worksheets(1).SaveAs(userProfile);

ThakYou@PA。

于 2012-07-31T07:07:56.333 に答える
1

JavaScript が文字列内の環境変数を展開すると仮定します。残念ながら、そうではありません。

コード内で展開する必要があります。環境変数にアクセスするには、wscript.shell オブジェクトの Environment プロパティを使用します。

まず、wscript.shell オブジェクトにアクセスします。WSH では、

var wshell = WScript.CreateObject("wscript.shell");

またはブラウザで使用

var wshell = new ActiveXObject("WScript.Shell");

その後

var userProfile = wshell.Environment("USERPROFILE");

または、 ExpandEnvironmentStrings メソッドを使用して、文字列内の変数を展開できます

objWorkbook.Worksheets(1).SaveAs(
  wshell.ExpandEnvironmentStrings("%USERPROFILE%\\Desktop\\xxx.xls")
);
于 2012-07-31T06:03:45.810 に答える