产品原型:
图片.png
功能需求:点击导出考勤表格按钮,会自动下载成excel格式
图片.png
图片.png
jsp页面代码:
<p class="tools"><button type="button" class="btn green" id="excell" onclick="method5('datatable')">导出考勤表</button></p>
js代码
//打印表格var idtmr; function getexplorer() { var explorer = window.navigator.useragent ; //ie if (explorer.indexof(msie) >= 0) { return 'ie'; } //firefox else if (explorer.indexof(firefox) >= 0) { return 'firefox'; } //chrome else if (explorer.indexof(chrome) >= 0) { return 'chrome'; } //opera else if (explorer.indexof(opera) >= 0) { return 'opera'; } //safari else if (explorer.indexof(safari) >= 0) { return 'safari'; } } function method5(tableid) { if (getexplorer() == 'ie') { var curtbl = document.getelementbyid(tableid); var oxl = new activexobject(excel.application); var owb = oxl.workbooks.add(); var xlsheet = owb.worksheets(1); var sel = document.body.createtextrange(); sel.movetoelementtext(curtbl); sel.select(); sel.execcommand(copy); xlsheet.paste(); oxl.visible = true; try { var fname = oxl.application.getsaveasfilename(excel.xls, excel spreadsheets (*.xls), *.xls); } catch (e) { print(nested catch caught + e); } finally { owb.saveas(fname); owb.close(savechanges = false); oxl.quit(); oxl = null; idtmr = window.setinterval(cleanup();, 1); } } else { tabletoexcel(tableid) } } function cleanup() { window.clearinterval(idtmr); collectgarbage(); } var tabletoexcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html><head><meta charset="utf-8"></head><body><table border="1">{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)) } })()
完整的可复制黏贴的demo:
<!doctype html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <p class="tools"> <button type="button" class="btn green" id="excell" onclick="method5('datatable')">导出考勤表格</button> </p> <table border="1" id="datatable"> <tr> <td>王婷111</td> <td>一见倾城333 </td> </tr> <tr> <td>祈澈姑娘222</td> <td>python开发者交流平台44</td> </tr> <tr> <td>wwwangting888</td> <td>13661725475</td> </tr> </table> </body> <script> //打印表格 var idtmr; function getexplorer() { var explorer = window.navigator.useragent; //ie if(explorer.indexof(msie) >= 0) { return 'ie'; } //firefox else if(explorer.indexof(firefox) >= 0) { return 'firefox'; } //chrome else if(explorer.indexof(chrome) >= 0) { return 'chrome'; } //opera else if(explorer.indexof(opera) >= 0) { return 'opera'; } //safari else if(explorer.indexof(safari) >= 0) { return 'safari'; } } function method5(tableid) { if(getexplorer() == 'ie') { var curtbl = document.getelementbyid(tableid); var oxl = new activexobject(excel.application); var owb = oxl.workbooks.add(); var xlsheet = owb.worksheets(1); var sel = document.body.createtextrange(); sel.movetoelementtext(curtbl); sel.select(); sel.execcommand(copy); xlsheet.paste(); oxl.visible = true; try { var fname = oxl.application.getsaveasfilename(excel.xls, excel spreadsheets (*.xls), *.xls); } catch(e) { print(nested catch caught + e); } finally { owb.saveas(fname); owb.close(savechanges = false); oxl.quit(); oxl = null; idtmr = window.setinterval(cleanup();, 1); } } else { tabletoexcel(tableid) } } function cleanup() { window.clearinterval(idtmr); collectgarbage(); } var tabletoexcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html><head><meta charset="utf-8"></head><body><table border="1">{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></html>
相关推荐:
前端html表格生成excel表格实例
实例详解javascript将json格式数组下载为excel表格
用javscript导出html中的数据到excel表格中
以上就是前端js打印(导出)excel表格的方法实例的详细内容。
