Skip to content Skip to sidebar Skip to footer

Export The HTML Table To Excel Is Not Working In IE

Exporting HTML table to Excel is working fine in Chrome and Firefox but it is not working in Internet Explorer 10. var tableToExcel = (function() { var uri = 'data:application/vn

Solution 1:

Excel Export Script works on IE7+ Mozilla & 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>

JSFiddle (Note only tested in IE 10): http://jsfiddle.net/x0av0ax5/1/


Solution 2:

Please see this plugin which uses 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);

Solution 3:

data uri does not support IE, maybe you post your excel xml data to server to generate the file.

And you can use Downloadify (Flash) to generate the file.

https://github.com/dcneiner/Downloadify


Solution 4:

Found a community version of SheetJS that works like a cham!

No warning like "The file format and extension of 'file.xls' don't match. This file could be corrupted or unsafe."

Import the library

    <script src="../Scripts/xlsx.full.min.js"></script>

Paste the function that calls the library

function doit(type, fn, dl) {
        var elt = document.getElementById('data-table');
        var wb = XLSX.utils.table_to_book(elt, { sheet: "Sheet JS" });
        return dl ?
            XLSX.write(wb, { bookType: type, bookSST: true, type: 'base64' }) :
            XLSX.writeFile(wb, fn || ('test.' + (type || 'xlsx')));
    }

Trigger the function using a button or anything that suit your needs.

<button id="btnExport" onclick="doit('xlsx');"> EXPORT </button>

Sample code can be found in this page


Post a Comment for "Export The HTML Table To Excel Is Not Working In IE"