在Angular 2

时间:2018-01-23 01:15:21

标签: kendo-ui kendo-grid kendo-ui-angular2

我正在开发一个网页,其中包含多个基于用户输入的Kendo网格组件。我的要求是将所有这些网格导出为ex​​cel报告。我为每个网格实现了Kendo-grid excel导出,它按预期工作,但为所有这些动态网格带来一个公共导出按钮,我该如何继续。我使用角度2来实现此功能。我可以为所有这些网格使用公共参考变量吗?请建议。

1 个答案:

答案 0 :(得分:1)

请参阅此问题的答案。它将帮助您组合来自多个来源的所有工作表 - Kendo UI for Angular 2: Excel export having multiple worksheets

如果您想自己操作工作表,请参阅此plunker 我写的。它显示了如何添加行(作为标题或数据) - 在撰写本文时,没有记录。

相关守则:

import { Component } from '@angular/core';
import { products } from './products';

@Component({
    selector: 'my-app',
    template: `
        <button type="button" class="k-button" (click)="save(excelexport)">Export To Excel</button>

        <kendo-excelexport #excelexport [data]="data" [fileName]=downloadFileName>
            <kendo-excelexport-column field="ProductID" title="Product ID" [width]="75">
            </kendo-excelexport-column>
            <kendo-excelexport-column field="ProductName" title="Product Name">
            </kendo-excelexport-column>
            <kendo-excelexport-column field="SomeDate" title="Start Date" [cellOptions]="{ format: 'mm/dd/yyyy' }"></kendo-excelexport-column>
      </kendo-excelexport>
    `
})
export class AppComponent {
    public data: any[] = products;
    public downloadFileName: string = "Report - Rates.xlsx"

    public save(component): void {
        const options = component.workbookOptions();

        options.sheets[0].name = `Rate Card Report`;

        let rows = options.sheets[0].rows;
        let infoRows = [
          { cells: [{value: "12345"}], type: 'data', xyz: 1 },
          { cells: [{value: "My stuff LLC"}], type: 'data', xyz: 1 },
          { cells: [{value: "2 Fun Street"}], type: 'data', xyz: 1 },
          { cells: [{value: "Rye, NY - 10580"}], type: 'data', xyz: 1 },
          ];

        Array.prototype.unshift.apply(rows, infoRows);
        console.log(rows);

        component.save(options);
    }
}