zoukankan      html  css  js  c++  java
  • js导出excel

    <div>    
        <button onclick="exportExcel('tableExcel','','111.xlsx')" class="btn btn-primary" style="float:right;">
      <a id="dlink" href="" style="display: none;"></a><i class="fa fa-download  "></i> 导出表格</button>
    </div>  
    
    <div id="myDiv">    
        <table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">    
            <tr>    
                <td colspan="5" align="center">html 表格导出道Excel</td>    
            </tr>    
            <tr>    
                <td>列标题</td>    
            </tr>    
            <tr>    
                <td>aaa</td>    
                <td>bbb</td>    
                <td>ccc</td>    
                <td>ddd</td>    
                <td>eee</td>    
            </tr>    
            <tr>    
                <td>AAA</td>    
                <td>BBB</td>    
                <td>CCC</td>    
                <td>DDD</td>    
                <td>EEE</td>    
            </tr>    
            <tr>    
                <td>FFF</td>    
                <td>GGG</td>    
                <td>HHH</td>    
                <td>III</td>    
                <td>JJJ</td>    
            </tr>    
        </table>    
    </div>  
    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 exportExcel(tableid,name,filename) { 
        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,name,filename) 
        } 
    } 
    
    function Cleanup() { 
        window.clearInterval(idTmr); 
        CollectGarbage(); 
    } 
    var tableToExcel = (function() { 
        var uri = 'data:application/vnd.ms-excel;base64,', 
        //Excel样式代码
        template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"'+
                    'xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>'
                    +'<x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets>'
                    +'</x:ExcelWorkbook></xml><![endif]-->'+
                    ' <style type="text/css">'+
                    '.excelTable  {'+
                    'border-collapse:collapse;'+
                     ' border:thin solid #999; '+
                    '}'+
                    '   .excelTable  th {'+
                    '   border: thin solid #999;'+
                    '  padding:20px;'+
                    '  text-align: center;'+
                    '  border-top: thin solid #999;'+
                    ' background-color: #E6E6E6;'+
                    ' }'+
                    ' .excelTable  td{'+
                    ' border:thin solid #999;'+
                    '  padding:2px 5px;'+
                    '  text-align: center;'+
                    ' }</style>'+
                    '</head><body ><table class="excelTable">{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,filename) { 
            if (!table.nodeType) table = document.getElementById(table) 
            var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} 
            document.getElementById("dlink").href = uri + base64(format(template, ctx));
            document.getElementById("dlink").download = filename;
            document.getElementById("dlink").click();
        } 
    })() 

     前提:引入jquery

  • 相关阅读:
    02 python网络爬虫《Http和Https协议》
    09 Django之orm中的锁和事务
    08 Django之自定义标签和过滤器
    07 Django之配置静态文件以及渲染图片
    06 Django之模型层---多表操作
    05 Django之模型层---单表操作
    Spring 中的 18 个注解,你会几个?
    一个 Java 对象到底有多大?
    面试题:InnoDB中一棵B+树能存多少行数据?
    Elasticsearch如何做到亿级数据查询毫秒级返回?
  • 原文地址:https://www.cnblogs.com/zard23/p/9429249.html
Copyright © 2011-2022 走看看