多个浏览器下应用前端JS实现一键导出excel表
2019-08-14 10:18:48来源:博客园 阅读 ()
自己试验了几种方法,找到一种较为全面的一种方式一键输出Excel表格,代码如下
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title>导出表格</title> 6 <script language="JavaScript" type="text/javascript"> 7 var Tmr; 8 function getExplorer() { 9 var explorer = window.navigator.userAgent ; 10 //ie 11 if (explorer.indexOf("MSIE") >= 0) { 12 return 'ie'; 13 } 14 //firefox 15 else if (explorer.indexOf("Firefox") >= 0) { 16 return 'Firefox'; 17 } 18 //Chrome 19 else if(explorer.indexOf("Chrome") >= 0){ 20 return 'Chrome'; 21 } 22 //Opera 23 else if(explorer.indexOf("Opera") >= 0){ 24 return 'Opera'; 25 } 26 //Safari 27 else if(explorer.indexOf("Safari") >= 0){ 28 return 'Safari'; 29 } 30 } 31 function method(tableid) { 32 if(getExplorer()=='ie') 33 { 34 var curTbl = document.getElementById(tableid); 35 var oXL = new ActiveXObject("Excel.Application"); 36 var oWB = oXL.Workbooks.Add(); 37 var xlsheet = oWB.Worksheets(1); 38 var sel = document.body.createTextRange(); 39 sel.moveToElementText(curTbl); 40 sel.select(); 41 sel.execCommand("Copy"); 42 xlsheet.Paste(); 43 oXL.Visible = true; 44 45 try { 46 var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls"); 47 } catch (e) { 48 print("Nested catch caught " + e); 49 } finally { 50 oWB.SaveAs(fname); 51 oWB.Close(savechanges = false); 52 oXL.Quit(); 53 oXL = null; 54 Tmr = window.setInterval("Cleanup();", 1); 55 } 56 } 57 else 58 { 59 tableToExcel(tableid) 60 } 61 } 62 function Cleanup() { 63 window.clearInterval(Tmr); 64 CollectGarbage(); 65 } 66 var tableToExcel = (function() { 67 var uri = 'data:application/vnd.ms-excel;base64,', 68 template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>', 69 base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }, 70 format = function(s, c) { 71 return s.replace(/{(\w+)}/g, 72 function(m, p) { return c[p]; }) } 73 return function(table, name) { 74 if (!table.nodeType) table = document.getElementById(table) 75 var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} 76 window.location.href = uri + base64(format(template, ctx)) 77 } 78 })() 79 </script> 80 </head> 81 <body> 82 83 <div > 84 <button type="button" onclick="method('tableExcel')">导出Excel</button> 85 </div> 86 87 88 <div id="myDi"> 89 <table id="tableExcel" width="100%" border="2" cellspacing="0" cellpadding="0"> 90 91 <tr> 92 <td colspan="5" align="center">金庸笔下人物</td> 93 </tr> 94 95 <tr> 96 <td>倚天屠龙记</td> 97 <td>天龙八部</td> 98 <td>鹿鼎记</td> 99 <td>神雕侠侣</td> 100 <td>射雕英雄传</td> 101 </tr> 102 103 <tr> 104 <td>张无忌</td> 105 <td>乔峰</td> 106 <td>韦小宝</td> 107 <td>杨过</td> 108 <td>郭靖</td> 109 </tr> 110 111 <tr> 112 <td>赵敏</td> 113 <td>虚竹</td> 114 <td>康熙</td> 115 <td>小龙女</td> 116 <td>黄蓉</td> 117 </tr> 118 119 <tr> 120 <td>周芷若</td> 121 <td>段誉</td> 122 <td>鳌拜</td> 123 <td>李莫愁</td> 124 <td>杨康</td> 125 </tr> 126 127 </table> 128 </div> 129 </body> 130 </html>
输出后显示:
显示表格:
原文链接:https://www.cnblogs.com/yxd000/p/11248131.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JS判断浏览器是否安装flash插件的简单方法 2020-03-12
- 使用JS在浏览器中判断当前网络连接状态的几种方法 2020-03-12
- 麻雀虽小五脏俱全 Dojo自定义控件应用 2020-02-20
- Js操作DOM元素及获取浏览器高宽的简单方法 2019-12-31
- JSP session配置对web应用的影响 2019-12-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash