我试图让一个异步Excel导出在我们的电网的一个工作,但我一直得到一个空的XSL只集合头文件。
数据正确渲染在网格,过滤和分页。
我试过下面的文档在这里没有成功,这是我实现:
在我component.ts
相关部分:
@Input() collection$: Observable<User[]>;
ngOnInit() {
this.allData = this.allData.bind(this);
}
allData(): Observable<GridDataResult> {
return this.collection$.pipe(
map(users => ({ data: users, total: users.length }))
);
}
我想的第一件事就是直接返回this.collection$;
但行为是一样的:Excel的内部空收集文件因此我试着来代替没有成功要么返回一个Observable<GridDataResult>
。
在我component.html
相关部分:
<kendo-grid
[kendoGridBinding]="collection$ | async"
pageSize="10"
[pageable]="true"
[filterable]="true"
>
<ng-template kendoGridToolbarTemplate>
<button type="button" kendoGridExcelCommand icon="file-excel">
Export to Excel
</button>
</ng-template>
<!-- columns -->
<kendo-pager-prev-buttons></kendo-pager-prev-buttons>
<kendo-pager-info></kendo-pager-info>
<kendo-pager-next-buttons></kendo-pager-next-buttons>
<kendo-pager-page-sizes [pageSizes]="[5, 10, 40]"></kendo-pager-page-sizes>
<kendo-grid-excel
fileName="Users.xlsx"
[fetchData]="allData"
></kendo-grid-excel>
</kendo-grid>
任何人都可以阐明这一些轻?提前致谢。
显然,这是因为rxjs
版本:
https://github.com/telerik/kendo-angular/issues/1962
删除rxjs
和rxjs-compat
到6.2.2
固定的问题。
UPDATE
碰碰也6.4.0
修复该问题。
如果添加了包@progress/kendo-angular-excel-export
和修改你的allData()
功能:
public allData(): ExcelExportData {
const result: ExcelExportData = {
data: this.collection$.pipe(
map(users => ({ data: users, total: users.length })).data
};
return result;
}
这应该工作