如何过滤prime ng表并仅将过滤后的数据导出到excel

问题描述 投票:0回答:1

我有一个 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 的行

primeng export-to-excel
1个回答
0
投票

我能够弄清楚我在组件中添加了另一个属性

 @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");
  }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.