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

问题描述 投票:0回答:1

我正在使用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

javascript knockout.js kendo-grid
1个回答
0
投票

我找到了答案。

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";
                                  }
                                }
                              }
                            }
                          }
© www.soinside.com 2019 - 2024. All rights reserved.