Exporter le tableau HTML pour Excel ne fonctionne pas dans IE

Je vais exporter le tableau HTML pour Excel fonctionne bien dans Chrome et Firefox, mais il ne fonctionne pas dans Internet Explorer 10.

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)) } })() 

    Excel Export Script fonctionne sur IE7 + Mozilla et Chrome ========================================= ==================

      function fnExcelReport() { var tab_text="<table border='2px'><tr bgcolor='#87AFC6'>"; var textRange; var j=0; tab = document.getElementById('headerTable'); // id of table for(j = 0 ; j < tab.rows.length ; j++) { tab_text=tab_text+tab.rows[j].innerHTML+"</tr>"; //tab_text=tab_text+"</tr>"; } tab_text=tab_text+"</table>"; tab_text= tab_text.replace(/<A[^>]*>|<\/A>/g, "");//remove if u want links in your table tab_text= tab_text.replace(/<img[^>]*>/gi,""); // remove if u want images in your table tab_text= tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer { txtArea1.document.open("txt/html","replace"); txtArea1.document.write(tab_text); txtArea1.document.close(); txtArea1.focus(); sa=txtArea1.document.execCommand("SaveAs",true,"Say Thanks to Sumit.xls"); } else //other browser not tested on IE 11 sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text)); return (sa); } 

    Créez juste un iframe vierge

      <iframe id="txtArea1" style="display:none"></iframe> 

    Appelez cette fonction sur

      <button id="btnExport" onclick="fnExcelReport();"> EXPORT </button> 

    JSFiddle (Note uniquement testé dans IE 10): http://jsfiddle.net/x0av0ax5/1/

    Uri de données ne supporte pas IE, peut-être que vous publiez vos données excel xml sur le serveur pour générer le fichier.

    Et vous pouvez utiliser Downloadify (Flash) pour générer le fichier.

    https://github.com/dcneiner/Downloadify

    Consultez ce plugin qui utilise BLOB. https://github.com/rainabba/jquery-table2excel

     if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer { if (typeof Blob !== "undefined") { //use blobs if we can tab_text = [tab_text]; //convert to array var blob1 = new Blob(tab_text, { type: "text/html" }); window.navigator.msSaveBlob(blob1, "download.xls"); } else { txtArea1.document.open("txt/html", "replace"); txtArea1.document.write(tab_text); txtArea1.document.close(); txtArea1.focus(); sa = txtArea1.document.execCommand("SaveAs", true, "download.xls"); return (sa); } } else window.location.href = 'data:application/vnd.ms-excel,' + encodeURIComponent(tab_text);