我有一个 primeng 表,我试图将过滤后的数据导出到 Excel,我创建了一个表作为组件,并在需要的地方使用它。这是我正在处理的 stackblitz 代码。我正在使用
exceljs
和 file-saver
npm 包来导出数据。我遇到的唯一问题是仅下载过滤后的数据而不是全部。
https://stackblitz.com/edit/primeng-card-demo-azewpe?file=src%2Fapp%2Fapp.module.ts
我已经浏览了此链接,但没有运气https://medium.com/@sankarums/angular-primeng-table-export-only-filtered-data-to-excel-7fc97878099c
this.table.filteredValue
这总是给我空
在给定的示例中,假设我选择 client1 并单击“导出到 Excel”,它应该仅下载属于 client1 的行
我能够弄清楚我在组件中添加了另一个属性
@Input()
filteredvalues: any[] = [];
添加了 onfilter 方法
(onFilter)="onFilter($event)"
onFilter(event: any) {
this.filteredvalues = event.filteredValue;
}
将组件导入为 viewchild
@ViewChild('dt1') table!:PrimeTableComponent;
在导出时我这样做了
exportToExcel() {
if (this.table.filteredvalues && Array.isArray(this.table.filteredvalues)) {
let data: any[] = [];
this.table.filteredvalues.forEach((employee: any) => {
const rowData: any = {
'Employee ID': employee.employeeId,
'Full Name': employee.employeeName,
'Email': employee.emailId,
'Billing Status': employee.billingStatus,
'Designation': employee.designation,
'Client': employee.client,
'Billing Start Date': employee.billingStartDate
};
});
if (data.length > 0) {
saveAsExcelFile(data, "EmployeeData");
}
}
}