【问题标题】:Kendo UI for Angular Exporting selected rows to Excel用于 Angular 的 Kendo UI 将选定的行导出到 Excel
【发布时间】:2019-01-31 19:47:00
【问题描述】:

我正在为 Angular 使用 Kendo UI,我正在尝试将我的网格导出到 Excel。我已经实现了这样的解决方案:https://www.telerik.com/kendo-angular-ui/components/grid/export/excel-export/

它确实有效。它导出我网格中的所有行。我的问题是我只想导出 selected 行。我无法成功过滤 allData 方法以仅导出选定的行。

在我看来,从 allData 方法中调用的 process 方法可以采用具有 filter: 组件的 State 对象。但对于我的生活,我似乎无法让它发挥作用。谁能指出一个简单的例子,其中仅将选定的行导出到 Excel?

谢谢, 约翰 B.

【问题讨论】:

  • 请在您所做的事情上添加一些代码。几天前我在研究类似的功能,如果我看到你的代码,我可以为你提供帮助。

标签: kendo-ui kendo-grid export-to-excel kendo-ui-angular2


【解决方案1】:

我已经将选定的行和选择键实现为整行,以便在导出时我可以检索选定的行并修改 export allData 以导出选择数据(如果存在)。如果选择不存在,则导出所有数据。

     public mySelectionKey(context: RowArgs): string {

           // return context.dataItem.serialNumber + " " + context.index;
           return context.dataItem;
       }

     public allData(): ExcelExportData {
         let selInventory: Inventory[] = [];
         let result: ExcelExportData;

          selInventory = JSON.parse(JSON.stringify(this.mySelection));



       if (selInventory.length > 0) {
             result = {
              data: process(selInventory, {
              sort: [{ field: "serialNumber", dir: "asc" }]
             }).data
            };
        } else {
             result = {
               data: process(this.inventoryData, {
              sort: [{ field: "serialNumber", dir: "asc" }]
               }).data
            };
          }

           return result;
        }

【讨论】:

    【解决方案2】:

    导出选定的行或所有行

     function excelExport() {
        var exportAll = $('.selectrow').is(":checked");
        var grid = $("#grid");
        var rows = [{
            cells: [
                { value: "column1" },
                { value: "column2" },
                { value: "column3" },
                { value: "column4" },
                { value: "column5" },
                { value: "column6" },
                { value: "column7" }
            ]
        }];
        if (exportAll) {
            var dataDource = grid.getKendoGrid();
            var trs = $("#grid").find('tr');
            for (var i = 0; i < trs.length; i++) {
                if ($(trs[i]).find(":checkbox").is(":checked")) {
                    var dataItem = dataDource.dataItem(trs[i]);
                    rows.push({
                        cells: [
                            { value: dataItem.column1 },
                            { value: dataItem.column2 },
                            { value: dataItem.column3 },
                            { value: dataItem.column4 },
                            { value: dataItem.column5 },
                            { value: dataItem.column6 },
                            { value: dataItem.column7 }
                        ]
                    })
                }
            }
        }
        else {
            var dataSource = grid.data("kendoGrid").dataSource;
            var trs = grid.find('tr');
            for (var i = 1; i < dataSource._data.length; i++) {
                    var dataItem = dataSource._data[i];
                    rows.push({
                        cells: [
                            { value: dataItem.column1 },
                            { value: dataItem.column2 },
                            { value: dataItem.column3 },
                            { value: dataItem.column4 },
                            { value: dataItem.column5 },
                            { value: dataItem.column6 },
                            { value: dataItem.column7 }
                        ]
                    })
            }
        }
    
    
    
        var workbook = new kendo.ooxml.Workbook({
            sheets: [
                {
                    columns: [
                        { autoWidth: true },
                        { autoWidth: true },
                        { autoWidth: true },
                        { autoWidth: true },
                        { autoWidth: true },
                        { autoWidth: true },
                        { autoWidth: true },
                        { autoWidth: true },
                        { autoWidth: true }
                    ],
                    title: "Exported Result",
                    rows: rows
                }
            ]
        });
        kendo.saveAs({ dataURI: workbook.toDataURL(), fileName: "ExportedResult" });
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 1970-01-01
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多