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,现在我看到了预期的结果
这是我的模拟数据
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,现在我看到了预期的结果