如何在Node.js中将CSV数据保存为.csv文件?

3
这是我的 "app.js" 文件。
const { convertArrayToCSV } = require('convert-array-to-csv');
const converter = require('convert-array-to-csv');
const fs = require('fs')
const csv = require('csv-parser')
const randomWords = require('random-words')
const header = ['number', 'first', 'last', 'handle'];

const dataArrays = [
[1, 'Mark', 'Otto', '@mdo'],
[2, 'Jacob', 'Thornton', '@fat'],
[3, 'Larry', 'the Bird', '@twitter'],
];
const val = convertArrayToCSV(dataArrays, {
header,
separator: ','
});
console.log(val)

output:

number,first,last,handle
1,Mark,Otto,@mdo  
2,Jacob,Thornton,@fat
3,Larry,the Bird,@twitter

我想将这个“Val”保存为.csv文件到我的设备上。我该怎么做?请帮忙。我已经卡在这里4个小时了。

文件系统(filesystem)fs库中的函数writeFile。 - undefined
我使用了writefile函数但是失败了。 - undefined
@Mujahidaul Islam 由于convertArrayToCSV的结果是一个字符串,所以它应该可以工作。 - undefined
可能是因为您需要对将创建文件的目录具有写访问权限。 您可以在Unix环境中使用ls -al来检查这一点。 或者,可以使用以下路径指向您的主文件夹: /home/newcsvfile.csv ~/newcsvfile.csv - undefined
2个回答

3

文件系统库

要实现这一点,您可以使用NodeJs的文件系统库

数据可以是:<string> | <Buffer> | <TypedArray> | <DataView> | <Object>

作为选项,您可以解析编码,例如:

fs.writeFile('message.txt', 'Hello Node.js', 'utf8', callback);


const { convertArrayToCSV } = require('convert-array-to-csv');
const converter = require('convert-array-to-csv');
const fs = require('fs')
const csv = require('csv-parser')
const randomWords = require('random-words')
const header = ['number', 'first', 'last', 'handle'];

const dataArrays = [
[1, 'Mark', 'Otto', '@mdo'],
[2, 'Jacob', 'Thornton', '@fat'],
[3, 'Larry', 'the Bird', '@twitter'],
];
const val = convertArrayToCSV(dataArrays, {
header,
separator: ','
});
console.log(val)


fs.writeFile('<pathtodirectory>/message.csv', val, (err) => {
      if (err) throw err;
      console.log('The file has been saved!');
    });    

不客气 :) 如果你觉得这个回答有帮助,请点击下方的接受按钮,给予肯定评价。 - undefined
我没有足够的声望来投票。投票需要至少15个声望。 - undefined
接受可以由任何代表进行。您可以选择其中一个答案作为有帮助的,这样其他人就能看到它有助于解决问题。在上下按钮下方是灰色的勾选框。 - undefined

2
const fs = require('fs')
const header = ['number', 'first', 'last', 'handle'];

const dataArrays = [
[1, 'Mark', 'Otto', '@mdo'],
[2, 'Jacob', 'Thornton', '@fat'],
[3, 'Larry', 'the Bird', '@twitter'],
];

const val = [header].concat(dataArrays).map(arr => arr.join(',')).join('\r\n');

fs.writeFile('filename.csv', val, err => {
  if(err) console.error(err);
  else console.log('Ok');
}););

感谢您的时间和努力。 - undefined
工作。谢谢。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接