zoukankan      html  css  js  c++  java
  • JS HTML table 生成 Excel文件

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>Document</title>
      6 </head>
      7 <body>
      8     <table id='tab'>
      9         <tr>
     10             <td>1</td>
     11             <td>1</td>
     12             <td>1</td>
     13         </tr>
     14         <tr>
     15             <td>2</td>
     16             <td>2</td>
     17             <td>2</td>
     18         </tr>
     19         <tr>
     20             <td>3</td>
     21             <td>3</td>
     22             <td>3</td>
     23         </tr>
     24     </table>
     25     <button onclick="ecxelMethod('tab')">tabtoexcel</button>
     26 </body>
     27 </html>
     28 <script>
     29     //导出Excel方法
     30     var idTmr;
     31     function  getExplorer() {
     32         var explorer = window.navigator.userAgent ;
     33         //ie
     34         if (explorer.indexOf("MSIE") >= 0) {
     35             return 'ie';
     36         }
     37         //firefox
     38         else if (explorer.indexOf("Firefox") >= 0) {
     39             return 'Firefox';
     40         }
     41         //Chrome
     42         else if(explorer.indexOf("Chrome") >= 0){
     43             return 'Chrome';
     44         }
     45         //Opera
     46         else if(explorer.indexOf("Opera") >= 0){
     47             return 'Opera';
     48         }
     49         //Safari
     50         else if(explorer.indexOf("Safari") >= 0){
     51             return 'Safari';
     52         }
     53     }
     54     function ecxelMethod(tableid) {
     55         if(getExplorer()=='ie')
     56         {
     57             var curTbl = document.getElementById(tableid);
     58             var oXL = new ActiveXObject("Excel.Application");
     59             var oWB = oXL.Workbooks.Add();
     60             var xlsheet = oWB.Worksheets(1);
     61             var sel = document.body.createTextRange();
     62             sel.moveToElementText(curTbl);
     63             sel.select();
     64             sel.execCommand("Copy");
     65             xlsheet.Paste();
     66             oXL.Visible = true;
     67 
     68             try {
     69                 var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");
     70             } catch (e) {
     71                 print("Nested catch caught " + e);
     72             } finally {
     73                 oWB.SaveAs(fname);
     74                 oWB.Close(savechanges = false);
     75                 oXL.Quit();
     76                 oXL = null;
     77                 idTmr = window.setInterval("Cleanup();", 1);
     78             }
     79 
     80         }
     81         else
     82         {
     83             tableToExcel(tableid)
     84         }
     85     }
     86     function Cleanup() {
     87         window.clearInterval(idTmr);
     88         CollectGarbage();
     89     }
     90     var tableToExcel = (function() {
     91         var uri = 'data:application/vnd.ms-excel;base64,',
     92             template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',
     93             base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },
     94             format = function(s, c) {
     95                 return s.replace(/{(w+)}/g,
     96                     function(m, p) { return c[p]; }) }
     97         return function(table, name) {
     98             if (!table.nodeType) table = document.getElementById(table)
     99             var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
    100             window.location.href = uri + base64(format(template, ctx))
    101         }
    102     })()
    103 
    104 
    105 </script>
  • 相关阅读:
    geotrellis使用(二十八)栅格数据色彩渲染(多波段真彩色)
    我的2016,感恩、乐观、努力
    我的奋斗——从印刷工人到地理信息大数据系统程序员
    geotrellis使用(二十七)栅格数据色彩渲染
    用户画像
    栈和队列在python中的实现
    跳一跳第一天总结
    在pycharm中使用scrapy爬虫
    用户使用手册
    项目测试报告和用户使用手册
  • 原文地址:https://www.cnblogs.com/lishalom/p/7249850.html
Copyright © 2011-2022 走看看