Export HTML Table with CSS to Excel using JavaScript | How to export html table to excel using javascript
<script type="text/javascript"> var tableToExcel = (function () { // Define your style class template. var style = "<style>.green { background-color: green; }</style>"; 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]-->' + style + '</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)) } })()</script><style type="text/css"> .green { background-color: green; }</style> <input type="button" onclick="tableToExcel('testTable', 'W3C Example Table')" value="Export to Excel" /> <table id="testTable" summary="Code page support in different versions of MS Windows." rules="groups" frame="hsides" border="2"> <caption> CODE-PAGE SUPPORT IN MICROSOFT WINDOWS </caption> <colgroup align="center"></colgroup> <colgroup align="left"></colgroup> <colgroup span="2" align="center"></colgroup> <colgroup span="3" align="center"></colgroup> <thead valign="top"> <tr> <th>Code-Page<br />ID</th> <th>Name</th> <th>ACP</th> <th>OEMCP</th> <th>Windows<br />NT 3.1</th> <th>Windows<br />NT 3.51</th> <th>Windows<br />95</th> </tr> </thead> <tbody> <tr> <td>1200</td> <td style="background-color: #00f; color: #fff">Unicode (BMP of ISO/IEC-10646)</td> <td></td> <td></td> <td>X</td> <td>X</td> <td>*</td> </tr> <tr> <td>1250</td> <td style="font-weight: bold"> </td> <td>X</td> <td></td> <td>X</td> <td>X</td> <td>X</td> </tr> <tr> <td class="green">1255</td> <td>Hebrew</td> <td>X</td> <td></td> <td></td> <td></td> <td>X</td> </tr> <tr> <td>437</td> <td>MS-DOS United States</td> <td></td> <td>X</td> <td>X</td> <td>X</td> <td>X</td> </tr> <tr> <td>708</td> <td>Arabic (ASMO 708)</td> <td></td> <td>X</td> <td></td> <td></td> <td>X</td> </tr> <tr> <td>709</td> <td>Arabic (ASMO 449+, BCON V4)</td> <td></td> <td>X</td> <td></td> <td></td> <td>X</td> </tr> <tr> <td>710</td> <td>Arabic (Transparent Arabic)</td> <td></td> <td>X</td> <td></td> <td></td> <td>X</td> </tr> </tbody></table><a href="#" id="test" onclick="fnExcelReport();"></a>
<div id="myTable"
rules="groups" frame="hsides" border="2" style="display:none">
</div>
<script src="https://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
window.onload = function() {
document.getElementById('test').click();
window.location.href='<?= base_url() ?>/admin/projects/project_details/<?= $project_details->project_id ?>';
}
function fnExcelReport() {
var tab_text = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">';
var tab_text = tab_text + '<head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>';
var tab_text = tab_text + '<x:Name><?= 'Target From Sales' .' '. $project_details->project_name .' '. date("j F Y")?></x:Name>';
var tab_text = tab_text + '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>';
var tab_text = tab_text + '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>';
var tab_text = tab_text + "<table border='1px'>";
//get table HTML code
var tab_text = tab_text + $('#myTable').html();
var tab_text = tab_text + '</table></body></html>';
var data_type = 'data:application/vnd.ms-excel';
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
//For IE
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
if (window.navigator.msSaveBlob) {
var blob = new Blob([tab_text], {type: "application/csv;charset=utf-8;"});
navigator.msSaveBlob(blob, '<?= 'Target From Sales' .' '. $project_details->project_name .' '. date("j F Y h:i:s")?>.xls');
}
}
//for Chrome and Firefox
else {
$('#test').attr('href', data_type + ', ' + encodeURIComponent(tab_text));
$('#test').attr('download', '<?= 'Target From Sales'.' '. $project_details->project_name .' '. date("j F Y h:i:s")?>.xls');
}
}
</script>
Comments
Post a Comment