HTML的Table导出Excel

调用 exportExcel(tableId, title)即可

//判断浏览器后调用的方法,把table的id传入即可 
const tableToExcel = (function() { 
    var uri = 'data:application/vnd.ms-excel;base64,', 
        template = '' 
            + '' 
            + '{table}
', 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) { var date = new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML } const a = document.createElement('a'); a.href =uri + base64(format(template, ctx)) ; a.download = name+year+""+month+""+strDate+".xls"; a.click(); /* window.location.href = uri + base64(format(template, ctx)) ;*/ } })() //获取到类型需要判断当前浏览器需要调用的方法,目前项目中火狐,谷歌,360没有问题 //win10自带的IE无法导出 export const exportExcel = function (tableid, fileName) { if(getExplorer()=='ie') { var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); var oWB = oXL.Workbooks.Add(); var xlsheet = oWB.Worksheets(1); var sel = document.body.createTextRange(); sel.moveToElementText(curTbl); sel.select(); sel.execCommand("Copy"); xlsheet.Paste(); oXL.Visible = true; try { var fname = oXL.Application.GetSaveAsFilename(fileName+".xls", "Excel Spreadsheets (*.xls), *.xls"); } catch (e) { print("Nested catch caught " + e); } finally { oWB.SaveAs(fname); oWB.Close(savechanges = false); oXL.Quit(); oXL = null; idTmr = window.setInterval("Cleanup();", 1); } }else{ tableToExcel(tableid,fileName) } } function Cleanup() { window.clearInterval(idTmr); CollectGarbage(); } 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'; } }

你可能感兴趣的:(HTML的Table导出Excel)