Export html table data to Excel using JavaScript / JQuery is not working properly in chrome browser Export html table data to Excel using JavaScript / JQuery is not working properly in chrome browser google-chrome google-chrome

Export html table data to Excel using JavaScript / JQuery is not working properly in chrome browser


Excel export script works on IE7+, Firefox and 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);}

Just create a blank iframe:

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

Call this function on:

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


Datatable plugin solves the purpose best and allows us to export the HTML table data into Excel , PDF , TEXT. easily configurable.

Please find the complete example in below datatable reference link :

https://datatables.net/extensions/buttons/examples/html5/simple.html

(screenshot from datatable reference site)enter image description here


This could help

function exportToExcel(){var htmls = "";            var uri = 'data:application/vnd.ms-excel;base64,';            var 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>';             var base64 = function(s) {                return window.btoa(unescape(encodeURIComponent(s)))            };            var format = function(s, c) {                return s.replace(/{(\w+)}/g, function(m, p) {                    return c[p];                })            };            htmls = "YOUR HTML AS TABLE"            var ctx = {                worksheet : 'Worksheet',                table : htmls            }            var link = document.createElement("a");            link.download = "export.xls";            link.href = uri + base64(format(template, ctx));            link.click();}