我通过以下方式从网页创建工作簿:
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.
答案 0 :(得分: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")
);
答案 1 :(得分: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);
谢谢@PA。