zoukankan      html  css  js  c++  java
  • HTML页面导出execl表格

    点击导出按钮时触发method5(“传入表格ID”)

    <script>
    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 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;'+
    ' '+
    ' }'+
    ' .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) {
    //console.log(table)
    if(!table.nodeType)
    table = document.getElementById(table);
    var ctx = {
    worksheet: name || 'Worksheet',
    table: table.innerHTML
    }
    var link = document.createElement("a");
    link.href = uri+base64(format(template, ctx));
    link.download = "采购结果情况汇总表.xls";//当前下载的excel名称
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
    }
    })();
    </script>






                                                             ————————只为延续被帮助过的感动。
  • 相关阅读:
    [转]Oracle DB 处理数据
    [转]Oracle DB 使用子查询来解决查询
    [转]Oracle DB 使用连接显示多个表中的数据
    自然连接(natural join)
    [转]Oracle 11g 新特性 -- SQL Plan Management 示例
    [转]Oracle 11g 新特性 -- SQL Plan Management 说明
    Oracle DB 组函数
    Oracle NULL相关函数
    UI :使用 UIPickerView 来选择数据
    UI: UISwitch 创建及使用开关 定制开关
  • 原文地址:https://www.cnblogs.com/lt3232696/p/10916733.html
Copyright © 2011-2022 走看看