码迷,mamicode.com
首页 > 其他好文 > 详细

JeasyUI,导出Excel

时间:2019-03-26 15:11:15      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:tab   表格   grid   客户   .data   book   dex   cat   ||   

这个是客户端表格导出伪Excel文档. 不知道为啥,超过200条,不能导出,显示网络错误

 

$.extend($.fn.datagrid.methods, {  
        //超过200条,不能导出,显示网络错误??
        toExcel: function(jq, filename){  
            return jq.each(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]--></head><body><table>{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]; }) }

                var alink = $(<a style="display:none"></a>).appendTo(body);
                var view = $(this).datagrid(getPanel).find(div.datagrid-view);

                var ignoreColumnIndex = 2;//前3列不导出
                //冻结的表格
                var table = view.find(div.datagrid-view2 table.datagrid-btable).clone();
                var tbody = table.find(>tbody);
                view.find(div.datagrid-view1 table.datagrid-btable>tbody>tr).each(function (index) {                   
                        $(this).clone().children().prependTo(tbody.children(tr:eq( + index + )));
                });
                //非冻结表格
                var head = view.find(div.datagrid-view2 table.datagrid-htable).clone();
                var hbody = head.find(>tbody);
                view.find(div.datagrid-view1 table.datagrid-htable>tbody>tr).each(function (index) {
                        $(this).clone().children().prependTo(hbody.children(tr:eq( + index + )));
                });
                hbody.prependTo(table);

                var ctx = { worksheet: name || Worksheet, table: table.html() || ‘‘ };
                alink[0].href = uri + base64(format(template, ctx));
                alink[0].download = filename;
                alink[0].click();
                alink.remove();  
            })  
        },
        toExcelUnfreeze: function (jq, filename) {
            return jq.each(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><meta charset="utf-8"/><!--[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]--></head><body><table>{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]; }) }

                var alink = $(<a style="display:none"></a>).appendTo(body);
                var view = $(this).datagrid(getPanel).find(div.datagrid-view);
                //非冻结列的table body
                var table = view.find(div.datagrid-view2 table.datagrid-btable).clone();

                //非冻结列的table header
                var head = view.find(div.datagrid-view2 table.datagrid-htable).clone();
                var hbody = head.find(>tbody);

                hbody.prependTo(table);

                var ctx = { worksheet: filename || Worksheet, table: table.html() || ‘‘ };
                alink[0].href = uri + base64(format(template, ctx));
                alink[0].download = filename;
                alink[0].click();
                alink.remove();
            })
        },
    })

 

JeasyUI,导出Excel

标签:tab   表格   grid   客户   .data   book   dex   cat   ||   

原文地址:https://www.cnblogs.com/zitjubiz/p/JeasyUI_export_excel.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!