替换IE浏览器才能识别的document.execCommand(‘SaveAs‘,false,‘Test.xls‘)两种方法

替换原因:

document.execCommand(‘SaveAs‘,false,‘Test.xls‘):将页面表格保存为Test.xls文件
//该方法只在IE中支持,谷歌/edge都无法识别,
//因IE不再被微软推荐使用,手上多个项目需要整改

特别注意如果导出的table中包含图片,那么这个图片地址一定是绝对路径,因为excel只会把图片链接插入excel中,而不是一起下载下来,如果图片访问路径无法打开图片那么导出也会无法显示

第一种:demo下载地址

也可下载最新js: jQuery Plugin to export HTML tabled to Excel Spreadsheet Compatible Files

使用基于jquery的 jquery.table2excel.js ,一款专门导入excel的插件,使用简单:

<script src="js/jquery.js"></script>  
  
    <script src="js/jquery.table2excel.js"></script>  
    <script>  
        $('button').click(function(){  
            console.log(1)  
            $("#datatable").table2excel({  
                exclude: ".noExl",  
                name: "Excel Document Name",  
                filename: "myFileName",  
                exclude_img: true,  
                exclude_links: true,  
                exclude_inputs: true  
            });  
        })  
        
        
//      table2excel插件的可用配置参数有:
//
//            exclude:不被导出的表格行的CSS class类。
//            name:导出的Excel文档的名称。
//            filename:Excel文件的名称。
//            exclude_img:是否导出图片。
//            exclude_links:是否导出超链接
//            exclude_inputs:是否导出输入框中的内容。
        
    </script>  

第二种(再原文基础上修改了使用IE下载的方法,因为IE下载还是有问题):

原文: html页面导出为excel表格 - 别动我的猫 - 博客园 (cnblogs.com)


<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
</head>

<body>
<div class="tools">
    <button type="button" class="btn green" id="excell" onclick="method5('dataTable')">导出考勤表格</button>
</div>

<table border="1" id="dataTable">
    <tr>
        <td>王婷111</td>
        <td>一见倾城333 </td>
    </tr>
    <tr>
        <td>祈澈姑娘222</td>
        <td>Python开发者交流平台44</td>
    </tr>
    <tr>
        <td>wwwangting888</td>
        <td>13661725475</td>
    </tr>
</table>

</body>
<script>
    //打印表格
    var idTmr;

    function getExplorer() {
        var explorer = window.navigator.userAgent;
        //ie
        if(explorer.indexOf("MSIE") >= 0) {
            return 'ie';
        }
        //firefox
        else if(explorer.indexOf("Firefox") >= 0) {
            return 'Firefox';
        }
        //Chrome
        else if(explorer.indexOf("Chrome") >= 0) {
            return 'Chrome';
        }
        //Opera
        else if(explorer.indexOf("Opera") >= 0) {
            return 'Opera';
        }
        //Safari
        else if(explorer.indexOf("Safari") >= 0) {
            return 'Safari';
        }
    }

    function method5(tableid) {
        if(getExplorer() == 'ie') {
        	  document.execCommand('SaveAs',false,'Test.xls');
        } else {
            tableToExcel(tableid)
        }
    }

    function Cleanup() {
        window.clearInterval(idTmr);
        CollectGarbage();
    }
    var tableToExcel = (function() {
        var uri = 'data:application/vnd.ms-excel;base64,',
                template = '<html><head><meta charset="UTF-8"></head><body><table  border="1">{table}</table></body></html>',
                base64 = function(
                        s) {
                    return window.btoa(unescape(encodeURIComponent(s)))
                },
                format = function(s, c) {
                    return s.replace(/{(\w+)}/g, function(m, p) {
                        return c[p];
                    })
                }
        return function(table, name) {
            if(!table.nodeType)
                table = document.getElementById(table)
            var ctx = {
                worksheet: name || 'Worksheet',
                table: table.innerHTML
            }
            window.location.href = uri + base64(format(template, ctx))
        }
    })()
</script>

</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值