如何使用javascript将Excel工作簿保存到当前用户桌面
How to save Excel workbook to current user desktop by using javascript?
我通过以下方式从网页创建工作簿:
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.
来自@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);
Thak You@PA。
您假设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")
);
相关文章:
- 从桌面读取python文件时高亮显示代码
- 从远程脚本获取用户IP
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- d3基于用户选择动态更新节点
- 同步调用,直到用户通过angular验证为访问者
- 使用javascript搜索具有用户输入的数组
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- 将用户重定向到 Windows 8 中的桌面浏览器
- 如何使用javascript将Excel工作簿保存到当前用户桌面
- 正在重定向桌面设备上的所有用户
- 如何检测用户使用的是 Excel 联机还是 Excel 桌面
- 如何使用 chrome 桌面通知向许多用户发送通知
- javascript:检查用户代理是否在桌面设备上
- 在用户桌面上动态创建doc/docx文档
- 我可以安全地限制桌面用户访问我的移动网站吗
- 如何在桌面和移动Chrome用户代理之间进行检测
- 我想直接用户到网页,如果他们是在桌面或移动操作系统
- Block jquery移动脚本和元视角为桌面用户
- 将移动用户重定向到桌面版本
- 查看桌面类web应用程序的javascript框架-当前mootools用户