JS导出table到excel(包含支持IE和支持谷歌的方式)

html代码:
<input id="Button_HTMLExcel" type="button" value="Excel导出" class="A"
                    onclick="javascript:return ExportExcel();" />

JS前端代码:

 function ExportExcel()
{
   IeAndGoogleExcel("TableContent");
}
 function  getExplorer() {
    var explorer = window.navigator.userAgent ;
                
   //ie 
   //if (explorer.indexOf("MSIE") >= 0) { ---只支持IE10以下版本
   if (!!window.ActiveXObject || "ActiveXObject" in window){ //--支持IE6-IE11
       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 IeAndGoogleExcel(tableid) {//整个表格拷贝到EXCEL中
  if(getExplorer()=='ie')
   {
       AllAreaExcel(tableid);//只支持ie的导出方式
     }
   else
   {
       tableToExcel(tableid)//支持非ie浏览器的导出方法
   }
 }

function AllAreaExcel(stri)
{
            var oXL = new ActiveXObject("Excel.Application");
            var oWB = oXL.Workbooks.Add();
            var oSheet = oWB.ActiveSheet;
            var sel=parent.frames('iFrame_Result').document.body.createTextRange();
                            sel.moveToElementText(parent.frames('iFrame_Result').document.getElementById(stri));
            sel.execCommand("Copy");
            oSheet.Paste();
            oXL.Visible = true;
        }

 var tableToExcel = (function() {
                  var uri = 'data:application/vnd.ms-excel;base64,',
                  template = '<html><head><meta charset="UTF-8"></head><body><table>{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)                    
//table = parent.frames[1].document.getElementById('TableContent') //谷歌支持的获取同级iframe里面的tableid方式
                    var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
                    window.location.href = uri + base64(format(template, ctx))
                  }
                })()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值