如何在Kendo UI网格中自定义导出excel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Kendo UI网格中自定义导出excel相关的知识,希望对你有一定的参考价值。

我正在使用Kendo UI网格。我有列,其中一列在列的末尾有一个总量(footertemplate)。当我导出到Excel时,excel显示总数为0.我在互联网上搜索但我什么都不懂。有人解释简单并帮助我?谢谢。

这是我的JS代码

self.filterClick = function () {
            showLoading();
            options.columns[7].footerTemplate = 'Toplam: #: data.CreditAmount ? kendo.format("{0:C2}",data.CreditAmount.sum): 0,00 #';
            mbisPost('Reports.Summary', "/api/PolisanReportApi/OpenPosOKCItems", ko.toJS(self.filters), function (result) {
                if (result && result.length > 0) {                
                    self.showNoDataToDisplay(false);
                    var kendoResource = getKendoResourceOptions();
                    $("#grid").kendoGrid({
                        toolbar: [{ name: "excel", text: kendoResource.toolbar.messages.excel }],
                        excel: {
                            fileName: "OpenPosOKCItemsList.xlsx",
                            allPages: true,
                            filterable: true
                        },

                        dataSource: {
                            data: result,
                            pageSize: 10,
                            aggregate: [
                                      { field: "CreditAmount", aggregate: "sum" }
                                    ]
                        },
                        groupable: kendoResource.groupable,
                        scrollable: true,
                        sortable: true,
                        selectable: "multiple",
                        pageable: kendoResource.pageable,
                        columns: options.columns                        
                    });
                }
                else {
                    self.showNoDataToDisplay(true);
                }

            }).error(function () { hideLoading(); }).done(function () { hideLoading(); });
        }

This is my Kendo UI screenshot

This is my Excel screenshot

答案

我找到了答案。

excelExport: function(e) {
                            var rows = e.workbook.sheets[0].rows;
                            var total = 0; // 
                            for (var ri = 0; ri < rows.length; ri++) {
                              var row = rows[ri];
                              if(row.type == "data"){
                                      total = total + row.cells[7].value; 
                              }
                              else if (row.type == "group-footer" || row.type == "footer") {
                                for (var ci = 0; ci < row.cells.length; ci++) {
                                  var cell = row.cells[ci];
                                  if (cell.value) {                
                                    cell.value = "Toplam : " + total;
                                   
                                    cell.hAlign = "right";
                                  }
                                }
                              }
                            }
                          }

以上是关于如何在Kendo UI网格中自定义导出excel的主要内容,如果未能解决你的问题,请参考以下文章

在Kendo ui中,Excel导出无法使用jquery。

Angular 的 Kendo UI:如何在网格中定义最小宽度

如何在 Kendo UI 网格中创建自定义删除/销毁按钮/命令?

可以导出多个kendo网格以实现角度优势

Kendo UI MVC——如何获得更灵活的网格自定义命令?

Kendo UI Grid Excel Export 不适用于引用 Kendo 值的 ClientGroupFooterTemplate