【发布时间】:2019-01-29 11:02:29
【问题描述】:
我试图让异步 Excel 导出在我们的一个网格中工作,但我始终得到一个 空 xsls 文件,其中只有集合标题。
数据在网格中正确呈现,带有过滤和分页。
我尝试按照此处的文档进行操作但没有成功,这是我的实现:
相关部分在我的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>
任何人都可以对此有所了解吗?提前致谢。
【问题讨论】:
-
你在哪里填充
collection$和users$? -
@codingbadger 忘记
users$,应该是collection$(现在将编辑)。collection$是从服务返回的可观察对象,从其父容器组件传递到网格组件。
标签: angular kendo-ui kendo-ui-angular2