javascript - 使用 XLSX NPM 包不显示数组中的值
问题描述
我有一个这样的对象:
{
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
(这是其他 obj 的数组)。
excel 文件的输出只是 property1 数组中每个对象的日期字段。虽然我希望日期字段为 on1 列,values.prop1 为第 2 列,values.prop2 为第 3 列....
谁能阐明为什么其他列没有从值对象中填充?
解决方案
是的,根据文档的这一部分,您似乎需要展平对象以使其工作。看看它的例子:
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:
推荐阅读
- java - 将 lib 与拆分包 Java9 与 maven 一起使用
- node.js - 如何检查大型节点应用程序中每个包的内存使用情况?
- roomle - 使用扩展参数时,Roomle 选项似乎被忽略了
- netsuite - 在高级 pdf/html 模板中添加项目图像?
- python - 如何在文本字段中进行输出并导入/使用我制作的模块
- python-3.x - 如何在 python 中将 5 位格式转换为 %Y-%d-%m?
- java - 如何发送每日通知但只发送一周?
- crystal-reports - 我想将部分文本加粗、斜体并在某些文本下划线,并使用水晶报告在段落中换行
- javascript - ReactJS,渲染方法性能影响
- ruby-on-rails - 如何在 Rails 中建立员工与公司的关系?