第一種:(導出格式:csv、txt、excel、word、png)

<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <div> <ul class="dropdown-menu"> <li> <a onclick="$('#stats_datatable').tableExport({type:'csv',escape:'false',filename:'(2016-02-29_2016-03-06)'});" href="#"> 導出格式-CSV </a> </li> <li> <a onclick="$('#stats_datatable').tableExport({type:'txt',escape:'false',filename:'(2016-02-29_2016-03-06)'});" href="#"> 導出格式-TXT </a> </li> <li> <a onclick="$('#stats_datatable').tableExport({type:'excel',escape:'false',filename:'(2016-02-29_2016-03-06)'});" href="#"> 導出格式-Excel </a> </li> <li> <a onclick="$('#stats_datatable').tableExport({type:'doc',escape:'false',filename:'(2016-02-29_2016-03-06)'});" href="#"> 導出格式-Word </a> </li> <li> <a onclick="$('#stats_datatable').tableExport({type:'png',escape:'false',filename:'(2016-02-29_2016-03-06)'});" href="#"> 導出格式-PNG </a> </li> </ul> </div> <div class="panel-body"> <table id="stats_datatable" class="table datatable"> <thead> <tr> <th>名稱</th> <th>里程</th> <th>次數</th> <th>天數</th> <th>簽到</th> <th>活動</th> <th>時間周期</th> <th>更新時間</th> </tr> </thead> <tbody></tbody> </table> </div> <!-- START SCRIPTS --> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <!-- 數據表 --> <script src="js/tableExport.js"></script> <script src="js/mybase.js"></script> <script> $(function () { //=======讓解碼后中文不出現亂碼的方法 data = $.base64({ data: "已經編碼過后的base64", type: 1, unicode: true }); //=或 data = $.base64({ data: "已經編碼過后的base64", type: 1 }); console.log(data); //downloadFile("myexcel.xls", data); }); </script> </body> </html>
第二種:(導出數據量少的情況導出帶樣式的)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>數據量少的情況導出帶樣式的</title> <style> table td { font-size: 12px; width: 200px; height: 30px; text-align: center; background-color: #4f891e; color: #ffffff; } </style> </head> <body> <a download="table導出Excel" id="excelOut" href="#">table導出Excel</a> <table cellspacing="0" cellpadding="0" border="1" id="tableToExcel"> <thead> <tr> <td>公司一</td> <td>公司二一</td> <td>公司三</td> </tr> </thead> <tbody> <tr> <td>A公司</td> <td>B公司</td> <td>C公司</td> </tr> <tr> <td>A公司</td> <td>B公司</td> <td>C公司</td> </tr> <tr> <td>A公司</td> <td>B公司</td> <td>C公司</td> </tr> <tr> <td colspan="3">共計</td> </tr> </tbody> </table> <script> window.onload = function () { tableToExcel('tableToExcel', '下載模板') }; //base64轉碼 var base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))); }; //替換table數據和worksheet名字 var format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }); } function tableToExcel(tableid, sheetName) { 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]-->' + ' <style type="text/css">' + 'table td {' + 'border: 1px solid #000000;' + 'width: 200px;' + 'height: 30px;' + ' text-align: center;' + 'background-color: #4f891e;' + 'color: #ffffff;' + ' }' + '</style>' + '</head><body ><table class="excelTable">{table}</table></body></html>'; if (!tableid.nodeType) tableid = document.getElementById(tableid); var ctx = { worksheet: sheetName || 'Worksheet', table: tableid.innerHTML }; document.getElementById("excelOut").href = uri + base64(format(template, ctx)); } </script> </body> </html>
第三種:(導出數據量稍大,但是附帶的有html標簽未修改完善)
my_tableExcel.js 百度網盤下載地址:https://pan.baidu.com/s/1smU3fTb

<html> <head> <title>Demo Jquery Table2Excel</title> </head> <body> <table style="width: 100%;" cellpadding=0 cellspacing=0 border="1" id="tblExport"> <tr> <td colspan="5" align="center"> <h2>成績單</h2> </td> </tr> <tr> <td align="center">2</td> <td style="background-color: #00CC00;" align="center">Tom</td> <td style="background-color: #00adee;" align="center">99</td> <td style="background-color: #00CC00;" align="center">85</td> <td style="background-color: #00adee;" align="center">80</td> </tr> <tr> <td align="center">2</td> <td style="background-color: #00CC00;" align="center">Tom</td> <td style="background-color: #00adee;" align="center">99</td> <td style="background-color: #00CC00;" align="center">85</td> <td style="background-color: #00adee;" align="center">80</td> </tr> <tr> <td align="center">1</td> <td style="background-color: #00CC00;" align="center">Jone</td> <td style="background-color: #00adee;" align="center">90</td> <td style="background-color: #00CC00;" align="center">85</td> <td style="background-color: #00adee;" align="center">100</td> </tr> <tr> <td align="center">2</td> <td style="background-color: #00CC00;" align="center">Tom</td> <td style="background-color: #00adee;" align="center">99</td> <td style="background-color: #00CC00;" align="center">85</td> <td style="background-color: #00adee;" align="center">80</td> </tr> <tr> <td colspan="5" align="center"> <h2>成績單</h2> </td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td colspan="5" align="center"> <h2>成績單</h2> </td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> <tr> <td style='width:54pt' align="center">編號</td> <td style='width:54pt' align="center">姓名</td> <td style='width:54pt' align="center">語文</td> <td style='width:54pt' align="center">數學</td> <td style='width:54pt' align="center">英語</td> </tr> </table> <button id="btnExport">導出為Excel</button> </body> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <script src="../js/my_tableExcel.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#btnExport").click(function () {//按鈕 $("#tblExport").tableExport();//方法1需要引用my_tableExcel.js //fnExcelReport();//方法2 //tablesToExcel();//方法3 }); }); function fnExcelReport() { var tab_text = "<table border='2px'><tr bgcolor='#87AFC6'>"; var textRange; var j = 0; tab = document.getElementById('tblExport'); // 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); } function tablesToExcel() { var tab_text = "<table border='2px'><tr bgcolor='#87AFC6'>"; var textRange; var j = 0; tab = document.getElementById('tblExport'); // 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>"; 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); } </script> </html>
第四種:(jquery.table2excel.js百度網盤下載:https://pan.baidu.com/s/1jKjA2Nk)
調用方法

$("#table1").table2excel({ exclude: ".noExl", //過濾位置的 css 類名 filename: "權限清單-" + new Date().getTime() + ".xls" //文件名稱 });
這4種方法也是從網上搜集來的,良心保證親測可用,有BUG的話歡迎大家指正修改