• 使用纯js 不导包实现 table 导出 Excel


    1.将js粘贴到项目

    2.设置table标签 id
    3.定义按钮,调用方法即可

    <!DOCTYPE html>
    <html lang="zh_CN">
     <head> 
      <meta charset="UTF-8" /> 
      <title>导出Excel</title> 
     </head> 
     <body> 
      <button type="button" onclick="method5('tableExcel')">导出Excel</button> 
      <table border="6" frame="void" align="center" width="650px" height="100px" cellspacing="0px" cellpadding="10px" id="tableExcel"> 
       <tbody>
        <tr height="50px" align="center"> 
         <th width="110px"></th> 
         <th><font color="blue">星期一</font></th> 
         <th><font color="blue">星期二</font></th> 
         <th><font color="blue">星期三</font></th> 
         <th><font color="blue">星期四</font></th> 
         <th><font color="blue">星期五</font></th> 
        </tr> 
        <tr height="40px" align="center"> 
         <td></td> 
         <td colspan="5" color="red"><font color="red"><b>上午</b></font></td> 
        </tr> 
        <tr height="40px" align="center"> 
         <td><font color="blue"><b></b></font></td> 
         <td>数学</td> 
         <td>英语</td> 
         <td>语文</td> 
         <td>文体活动</td> 
         <td>数学</td> 
        </tr> 
        <tr height="40px" align="center"> 
         <td><font color="blue"><b></b></font></td> 
         <td>语文</td> 
         <td>美术</td> 
         <td>语文</td> 
         <td>语文</td> 
         <td>语文</td> 
        </tr> 
        <tr height="40px" align="center"> 
         <td><font color="blue"><b></b></font></td> 
         <td>体育</td> 
         <td>文体活动</td> 
         <td>文体活动</td> 
         <td>品德与生活</td> 
         <td>英语</td> 
        </tr> 
        <tr height="40px" align="center"> 
         <td></td> 
         <td colspan="5"><font color="red"><b>下午</b></font></td> 
        </tr> 
        <tr height="40px" align="center"> 
         <td><font color="blue"><b></b></font></td> 
         <td>品德与生活</td> 
         <td>语文</td> 
         <td>数学</td> 
         <td>体育</td> 
         <td>美术</td> 
        </tr> 
        <tr height="40px" align="center"> 
         <td><font color="blue"><b></b></font></td> 
         <td>文体活动</td> 
         <td>体育</td> 
         <td>专题</td> 
         <td>语文</td> 
         <td>语文</td> 
        </tr> 
        <tr height="40px" align="center"> 
         <td><font color="blue"><b></b></font></td> 
         <td>兴趣</td> 
         <td>读书活动</td> 
         <td>音乐</td> 
         <td>音乐</td> 
         <td>数学</td> 
        </tr> 
        <tr height="40px" align="center"> 
         <td><font color="blue"><b></b></font></td> 
         <td>班队活动</td> 
         <td>课后托管</td> 
         <td>课后托管</td> 
         <td>课后托管</td> 
         <td>课后托管</td> 
        </tr> 
       </tbody>
      </table> 
      <script>
         //导出excel
         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="1px">{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>  
     </body>
    </html>
  • 相关阅读:
    guxh的python笔记一:数据类型
    guxh的python笔记三:装饰器
    guxh的python笔记十:包和模块
    guxh的python笔记六:类的属性
    guxh的python笔记四:迭代
    流畅的python笔记
    spring面试大全
    Spring面试问答
    Hibernate的10个常见面试问题及答案
    reflect 机制
  • 原文地址:https://www.cnblogs.com/gaogushenling/p/12509665.html
Copyright © 2020-2023  润新知