自己試驗了幾種方法,找到一種較為全面的一種方式一鍵輸出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>
輸出後顯示:

顯示表格: