我在JS中有一个对象数组(JSON),并希望将其转换为Excel工作表。在JSON数据中,有一些键值对我不想转换为Excel,例如Excel不应该包含年信息,如下所示(请运行HTML代码查看所需的Excel输出):
JSON数据:
[
{
car: "Range Rover",
color: "silver",
year: "2021"
},
{
car: "Benz",
color: "black",
year: "2019"
},
{
car: "Toyota",
color: "silver",
year: "2020"
}
]
Excel视图(运行代码段):
<html>
<body>
<table>
<tr>
<th>car</th>
<th>color</th>
</tr>
<tr>
<td>Range Rover</td>
<td>silver</td>
</tr>
<tr>
<td>Benz</td>
<td>black</td>
</tr>
<tr>
<td>Toyota</td>
<td>silver</td>
</tr>
</table>
</body>
</html>
如何使用XLSX实现这一点?在JS ?
这里有几件事你可以做。
- 解析JSON数据后,可以将其保存在xlsx工作表中,更改工作表的!ref属性设置为所需的范围,然后将该工作表添加到xlsx簿。
let file = fs.readFileSync('test.json', 'utf-8');
let data = JSON.parse(file);
var wb = xlsx.utils.book_new();
var ws = xlsx.utils.json_to_sheet(data);
ws['!ref'] = 'A1:B4';
xlsx.utils.book_append_sheet(wb, ws, 'Sheet 1');
xlsx.writeFile(wb, 'test1.xlsx');
- 从JSON数据中过滤出你想要的属性到一个单独的数组,然后将它们添加到文件
let file = fs.readFileSync('test.json', 'utf-8');
let data = JSON.parse(file);
var wb = xlsx.utils.book_new();
let dataArray = [];
data.forEach(d => {
dataArray.push({"car": d.car, "color": d.color});
});
var ws = xlsx.utils.json_to_sheet(dataArray);
console.log(ws);
xlsx.utils.book_append_sheet(wb, ws, 'Sheet 1');
xlsx.writeFile(wb, 'test2.xlsx');
检查实用程序函数文档可能也有帮助。
https://www.npmjs.com/package/xlsx实用函数