Kendo Grid 部分列导出到excel

场景:
在导出excel时,不需要导出所有列,部分列不导出到excel

bizNo不导出到excel

//点击
<button class="widthnotcertainbutton" data-bind="events: {click:ExportVoucher}">@ResourcesLan.Export</button>

//展示
<div data-role="grid" id="PayConfirmGrid"
                 data-auto-bind="true"
                 data-selectable="row"
                 data-resizable="true"
                 data-pageable="true"
                 data-excel="{allPages: true,fileName:'会计凭证'+'.xlsx'}"
                 data-columns="[{ 'field': 'Seq','title':'Seq', 'width': 120},
                 { 'field': 'BizNo','title':'BizNo', 'width': 320},
                     { 'field': 'Debit','title':'Debit','width': 120,},
            { 'field': 'Credit','title':'Credit','width': 120},
            { 'field': 'Account','title':'Account','width': 120},
            { 'field': 'AccountName','title':'AccountName','width': 180},
            { 'field': 'UnitCode1','title':'UnitCode1', 'width': 180},
            { 'field': 'UnitCode2','title':'UnitCode2','width': 120},
            { 'field': 'UnitCode3','title':'UnitCode3','width': 120},
            { 'field': 'UnitCode4','title':'UnitCode4','width': 120},
            { 'field': 'Notes','title':'Notes','width': 240},
            { 'field': 'DomesticAmount','title':'DomesticAmount','width': 180,attributes:{'class':'right'},'format':'{0:N2}'},
                { 'field': 'Customer_Vendor','title':'Customer_Vendor','width': 180},
                { 'field': 'Cust_num_Vend_num','title':'Cust_num_Vend_num','width': 180},
                { 'field': 'BankCode','title':'BankCode','width': 100},
                { 'field': 'SettleMethod','title':'SettleMethod','width': 120},
                { 'field': 'ChequeNumber','title':'ChequeNumber','width': 180},
                { 'field': 'ChequeDate','title':'ChequeDate','width': 120},
                { 'field': 'CurrencyCode','title':'CurrencyCode','width': 120},
                { 'field': 'ExchangeRate','title':'ExchangeRate','width': 120,attributes:{'class':'right'},'format':'{0:N2}'},
                { 'field': 'ForeignAmount','title':'ForeignAmount','width': 180,attributes:{'class':'right'},'format':'{0:N2}'},
            ]"
             data-bind="source: PayConfirmDatas,events:{change:PayConfirmChange}"
            >
        </div>



//点击事件
ExportVoucher: function () {
            debugger;
            //gridexport('PayConfirmGrid');
            var grid = $("#PayConfirmGrid").data("kendoGrid");
            //var data = this.PayConfirmDatas;
            //console.log(grid._data);
            //_.each(grid.dataSource.data(), function (t) {
            //    console.log(t);
            // })
            grid.hideColumn(1);
            grid.saveAsExcel();
        }

参考资料:
https://www.jianshu.com/p/fbcaa51d9c0c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kendo UI框架提供了强大的Excel导出功能,通过Grid的saveAsExcel能方便地导出Grid中的数据,而且格式美观大方,使用起来也非常方便。但是在实际使用中不是很理想,主要有以下两个问题: 1. 导出数据是原始值 Kendo UI默认导出的是该的value值,及查出来的值,有时候我们会用template渲染一下导出,比如将“Y”显示成“是”,把“N”显示成“否”。而Kendo UI导出的却是Y/N这种只有程序员看得懂的数据库标识,显然不是我们需要的,这种情况非常常见。 2. 不能灵活控制可导出 Kendo UI的Excel导出主要看两点,一是该(column)是field字段,而不是自定义的name;二是该不是隐藏的(hidden:true)。这样我们无法灵活导出我们需要的。 为了解决上面两个问题,我查看了Kendo UI的源代码,提取并改进了源代码。主要更改点及使用方法请看下面源代码。主要针对以上两点做了更改,只需要在grid定义columns时加上isExport或exportTemplate即可: 在导出数据,先看该有没有自定义exportTemplate(),没有则看Kendo UI自带的template(),再没有才会导出查出来的值。 判断是否导出不再看hidden属性,而是看的isExport属性,如果为false则不导出,其它情况一律导出。 经过这两个更改,基本可以应对所有业务场景,可以方便快捷地开发了! 但要注意,Kendo UI自带的导出功能无法应用于导出大量数据,似乎是浏览器的jvm溢出了,建议超过5万条的数据导出还是老老实实写后台导出功能吧。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值