使用 XLSX NPM 包不显示数组中的值
Using XLSX NPM package not showing values from array
我有一个这样的对象:
{
property1: [
{
date: Date,
values: {
prop1: xyz,
prop2: xyz,
prop3: xyz
}
}
],
property2: {
id: 245232,
description: "My awesome description"
}
}
在我的 Excel 服务中,导入 XLSX 包后,我有以下代码。
public 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'] };
const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
this.saveAsExcelFile(excelBuffer, excelFileName);
}
当我调用excel服务时,我会传入我的Ojbect.property1
数组(这是一个其他objs的数组)。
excel 文件的输出只是 property1 数组中每个对象的日期字段。虽然我希望日期字段是第 1 列,values.prop1 是第 2 列,values.prop2 是第 3 列....
谁能解释为什么其他列没有从值对象填充?
是的,根据 this 部分文档,您似乎需要展平对象才能使其正常工作。
查看它的示例:
var ws = XLSX.utils.json_to_sheet([
{ S:1, h:2, e:3, e_1:4, t:5, J:6, S_1:7 },
{ S:2, h:3, e:4, e_1:5, t:6, J:7, S_1:8 }
], {header:["S","h","e","e_1","t","J","S_1"]});
请记住,列的顺序基于 Object.keys()
。
希望这对您有所帮助。 :fingers_crossed:
我有一个这样的对象:
{
property1: [
{
date: Date,
values: {
prop1: xyz,
prop2: xyz,
prop3: xyz
}
}
],
property2: {
id: 245232,
description: "My awesome description"
}
}
在我的 Excel 服务中,导入 XLSX 包后,我有以下代码。
public 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'] };
const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
this.saveAsExcelFile(excelBuffer, excelFileName);
}
当我调用excel服务时,我会传入我的Ojbect.property1
数组(这是一个其他objs的数组)。
excel 文件的输出只是 property1 数组中每个对象的日期字段。虽然我希望日期字段是第 1 列,values.prop1 是第 2 列,values.prop2 是第 3 列....
谁能解释为什么其他列没有从值对象填充?
是的,根据 this 部分文档,您似乎需要展平对象才能使其正常工作。 查看它的示例:
var ws = XLSX.utils.json_to_sheet([
{ S:1, h:2, e:3, e_1:4, t:5, J:6, S_1:7 },
{ S:2, h:3, e:4, e_1:5, t:6, J:7, S_1:8 }
], {header:["S","h","e","e_1","t","J","S_1"]});
请记住,列的顺序基于 Object.keys()
。
希望这对您有所帮助。 :fingers_crossed: