【发布时间】:2019-12-25 19:40:19
【问题描述】:
使用 Node.js,如何从包含键值对的数组中写出 csv 文件?
这是我想写出的键/值对的示例数组。
function testWriteCsv() {
const arr = []
const kp1 = []
const kp2 = []
const kp3 = []
kp1['FIRST_NAME'] = 'First Name1';
kp1['LAST_NAME'] = 'First Name1';
kp2['FIRST_NAME'] = 'First Name2';
kp2['LAST_NAME'] = 'First Name2';
kp3['FIRST_NAME'] = 'First Name3';
kp3['LAST_NAME'] = 'First Name3';
arr.push(kp1)
arr.push(kp2)
arr.push(kp3)
console.log('arr', arr)
// now I want to write out a .csv file of the above data, with header:
// FIRST_NAME,LAST_NAME
}
我按照示例尝试使用以下库,但它们都不适用于键值对数组。
以下库都没有我可以传递键/值对数组并帮助写出 .csv 的函数。
我尝试使用以下库来扭曲数组、交互、做各种事情,但它们都不起作用。
fs
fast-csv
convert-array-to-csv
csv-writer
我会问,如果你以前做过,并且有一个完整的例子,请分享,将不胜感激。
谢谢。
更新:
这是一个解决方案的完整工作示例:
const fs = require('fs');
function testWriteCsv() {
const arr = [];
const kp1 = [];
const kp2 = [];
const kp3 = [];
kp1['FIRST_NAME'] = 'First Name1';
kp1['LAST_NAME'] = 'First Name1';
kp2['FIRST_NAME'] = 'First Name2';
kp2['LAST_NAME'] = 'First Name2';
kp3['FIRST_NAME'] = 'First Name3';
kp3['LAST_NAME'] = 'First Name3';
arr.push(kp1);
arr.push(kp2);
arr.push(kp3);
// 'output' will hold the full csv result to be written to file
const headers = Object.keys(arr[0]);
let output = headers.join() + '\n';
for (let kv of arr) {
let values = Object.values(kv).join() + '\n';
output += values
}
// Write to a file
fs.writeFile("test.csv", output, function (err) {
if (err) return console.log(err);
console.log("The file was saved!");
});
}
testWriteCsv()
【问题讨论】:
标签: javascript arrays node.js csv key-value