Angular XLSX 库,导出对象数组

Angular XLSX library, export an array of objects

这是我的模拟数据

mockData: any[] = [
  {
    "id": "456",
    "requestType": "Test",
    "requestDate": "10/15/20",
    "status": "Fail",
    "product": [
       {
         "productName": "product 1",
         "productQty": "12"
       },
       {
         "productName": "product 2",
         "productQty": "22"
       }
    ]
  }
]

.ts:

toExportFileName(excelFileName: string): string {
    var date = new Date();
    return `${excelFileName}_${date.getMonth() + 1}${date.getDate()}${date.getFullYear()}.xlsx`;
  }

  exportAsExcelFile(json: any[], excelFileName: string): void {
    const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);
    const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
    XLSX.writeFile(workbook, this.toExportFileName(excelFileName));
  }

  exportToExcel() {
    this.exportAsExcelFile(this.mockData, 'Shado_Test_Report');
  }

实际结果:

预期结果:

我正在尝试调整逻辑来处理对象数组并指定 xl 中的位置,我可以基于带有 xlsx 库的 mockData 实现上述预期结果吗??

我通过更改解决了这个问题

const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);

至:

@ViewChild('reportTable') reportTable: ElementRef;

const ws: XLSX.WorkSheet=XLSX.utils.table_to_sheet(this.reportTable.nativeElement);

现在我正在将 HTML Table 导出到 Excel,现在我看到了预期的结果