导出为Excel不能在Internet Explorer 11中工作

嗨,我使用此代码,以使我的HTML表格出口优秀,但它不能在IE 11中工作。有人可以帮我吗?

var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></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) var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} window.location.href = uri + base64(format(template, ctx)) } })() 

 It is Working Good . in html code <a table_div='ExportcommunicationPlanDiv' class="btnExport"><li title="Export to Excel"><div class="btn-excel"> </div></li></a> <script> var excelfileName="download"; $(".btnExport").click(function () { var today = new Date(); var dd = today.getDate(); var mm = today.getMonth()+1; //January is 0! var yyyy = today.getFullYear(); if(dd<10){ dd='0'+dd; } if(mm<10){ mm='0'+mm; } var today = dd+'/'+mm+'/'+yyyy; excelfileName = excelfileName +"_"+today; // var todaysDate = moment().format('DD-MM-YYYY'); if(isIE()) { var id = $(this).attr('table_div'); var blobURL = tableToExcelForIE(''+id+''); } else { //var todaysDate ="test"; var id = $(this).attr('table_div'); var blobURL = tableToExcel(''+id+''); $(this).attr('download',excelfileName+'.xls') $(this).attr('href',blobURL); } }); function isIE() { var isIE11 = navigator.userAgent.indexOf(".NET CLR") > -1; var isIE11orLess = isIE11 || navigator.appVersion.indexOf("MSIE") != -1; return isIE11orLess; } var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; 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) var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} var blob = new Blob([format(template, ctx)]); var blobURL = window.URL.createObjectURL(blob); return blobURL; } })() var tableToExcelForIE = (function() { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; 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) var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} var blob = new Blob([format(template, ctx)]); var blobURL = window.URL.createObjectURL(blob); //IE if (isIE()) { csvData = table.innerHTML; if (window.navigator.msSaveBlob) { var blob = new Blob([format(template, ctx)], { type: "text/html" }); navigator.msSaveBlob(blob, ''+excelfileName+'.xls'); } } } })() </script> 

这工作:

 <a table_div='ExportcommunicationPlanDiv' class="btnExport"><li title="Export to Excel"><div class="btn-excel"> </div></li></a> <script> var excelfileName="download"; $(".btnExport").click(function () { var today = new Date(); var dd = today.getDate(); var mm = today.getMonth()+1; //January is 0! var yyyy = today.getFullYear(); if(dd<10){ dd='0'+dd; } if(mm<10){ mm='0'+mm; } var today = dd+'/'+mm+'/'+yyyy; excelfileName = $('#POTS_CKT_ID').val() +"_"+today; // var todaysDate = moment().format('DD-MM-YYYY'); if(isIE()) { var id = $(this).attr('table_div'); var blobURL = tableToExcelForIE(''+id+''); } else { //var todaysDate ="test"; var id = $(this).attr('table_div'); var blobURL = tableToExcel(''+id+''); $(this).attr('download',excelfileName+'.xls') $(this).attr('href',blobURL); } }); function isIE() { var isIE11 = navigator.userAgent.indexOf(".NET CLR") > -1; var isIE11orLess = isIE11 || navigator.appVersion.indexOf("MSIE") != -1; return isIE11orLess; } var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; 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) var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} var blob = new Blob([format(template, ctx)]); var blobURL = window.URL.createObjectURL(blob); return blobURL; } })() var tableToExcelForIE = (function() { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; 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) var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} var blob = new Blob([format(template, ctx)]); var blobURL = window.URL.createObjectURL(blob); //IE if (isIE()) { csvData = table.innerHTML; if (window.navigator.msSaveBlob) { var blob = new Blob([format(template, ctx)], { type: "text/html" }); navigator.msSaveBlob(blob, ''+excelfileName+'.xls'); } } } })() </script>