您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

前端js打印(导出)excel表格的方法实例

2025/10/5 14:21:24发布14次查看
本文主要和大家分享前端js打印(导出)excel表格的方法实例,希望能帮助到大家。
产品原型:
图片.png
功能需求:点击导出考勤表格按钮,会自动下载成excel格式
图片.png
图片.png
jsp页面代码:
<p class="tools"><button type="button" class="btn green" id="excell" onclick="method5('datatable')">导出考勤表</button></p>
js代码
//打印表格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="1">{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))         }     })()
完整的可复制黏贴的demo:
<!doctype html><html>     <head>         <meta charset="utf-8">         <title></title>     </head>     <body>         <p class="tools">             <button type="button" class="btn green" id="excell" onclick="method5('datatable')">导出考勤表格</button>         </p>         <table border="1" id="datatable">             <tr>                 <td>王婷111</td>                 <td>一见倾城333 </td>             </tr>             <tr>                 <td>祈澈姑娘222</td>                 <td>python开发者交流平台44</td>             </tr>             <tr>                 <td>wwwangting888</td>                 <td>13661725475</td>             </tr>         </table>     </body>     <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><head><meta charset="utf-8"></head><body><table border="1">{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></html>
相关推荐:
前端html表格生成excel表格实例
实例详解javascript将json格式数组下载为excel表格
用javscript导出html中的数据到excel表格中
以上就是前端js打印(导出)excel表格的方法实例的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product