JS导出Excel

JS导出Excel有如下方法:
方法一:
function method1(tableid) {//整个表格拷贝到EXCEL中
var curTbl = document.getElementById(tableid);
var oXL = new ActiveXObject("Excel.Application");
//创建AX对象excel
var oWB = oXL.Workbooks.Add();
//获取workbook对象
var oSheet = oWB.ActiveSheet;
//激活当前sheet
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
//把表格中的内容移到TextRange中
sel.select();
//全选TextRange中内容
sel.execCommand("Copy");
//复制TextRange中内容
oSheet.Paste();
//粘贴到活动的EXCEL中
oXL.Visible = true;
//设置excel可见属性
}
方法一,在IE6,7,8中都可以用,前提是得安装上excel。因为用到了Excel.Application 控件,还得将电脑IE的安全级别设置降低。
方法二:
function doFileExport(inName, inStr) {
var xlsWin = null;
if (!!document.all("glbHideFrm")) {
xlsWin = glbHideFrm;
}
else {
var width = 6;
var height = 4;
var openPara = "left=" + (window.screen.width / 2 - width / 2)
+ ",top=" + (window.screen.height / 2 - height / 2)
+ ",scrollbars=no,width=" + width + ",height=" + height;
xlsWin = window.open("", "_blank", openPara);
}
xlsWin.document.write(inStr);
xlsWin.document.close();
xlsWin.document.execCommand('Saveas', true, inName);
xlsWin.close();
}

方法二是通过将网上也Table的内容组装成然后通过弹出窗口供用户选择路径保存。在IE6中完全可以。但是在IE7,IE8中不行,IE8自带了脚本调试,调试都通过,但是 
这条语句xlsWin.document.execCommand('Saveas', true, inName); 对于IE8来说没有作用,是不是IE7,IE8将document.execCommand()此方法禁用掉了,在我一同事的机子(IE8)上可以,他打了很多补丁,但是其他电脑都不行,我一直试了很长时间,不知需要打哪个补丁,IE8的兼容视图补丁已经打上,但是还是没有作用.

这好像是微软为了安全性考虑,不能用execcommand函数导出除了txt,htm,html,以外的格式,如果你在上面把xls改成txt,就可以了,导出以后再在系统中改文件后缀名。对了,你上面的代码也有点小问题,实际上你的文件还没导出,就弹了提示成功的对话框,有点问题,呵呵!建议改成:   
function outExcel(atblData){
var w = window.open("about:blank","Excel", "widht=0,height=0");
w.document.write(atblData.outerHTML);
if(w.document.execCommand('Saveas',true, 'D:\\会员信息.txt))
alert("导出成功");
else
alert("导出失败!");
window.close();
}



上一篇: Jquery让IE6支持PNG透明背景图片插件
下一篇: 今天完成了今年的最大一件事

点击获得Trackback地址

发表评论

内 容: