Node.jsでCSVにデータを書き込むの方法を見つけるのに苦労しています。
使用可能なCSVプラグインはいくつかありますが、stdoutに「書き込む」だけです。
理想的には、ループを使用してrow-by-rowベースで記述したいと思います。
node-csv-parser
(npm install csv
)ストリームで使用できることを具体的に述べています(fromStream
、toStream
を参照)。そのため、stdoutを使用するのはハードコーディングされていません。
他のいくつかのCSVパーサーも、npm search csv
-あなたもそれらを見たいかもしれません。
Fs( https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback )を使用できます:
var dataToWrite;
var fs = require('fs');
fs.writeFile('form-tracking/formList.csv', dataToWrite, 'utf8', function (err) {
if (err) {
console.log('Some error occured - file either not saved or corrupted file saved.');
} else{
console.log('It\'s saved!');
}
});
次に、 csv-stringify を使用して、fs.writeFile
を使用してメモリに適合するデータセットをcsvファイルに書き込む簡単な例を示します。
import stringify from 'csv-stringify';
import fs from 'fs';
let data = [];
let columns = {
id: 'id',
name: 'Name'
};
for (var i = 0; i < 10; i++) {
data.Push([i, 'Name ' + i]);
}
stringify(data, { header: true, columns: columns }, (err, output) => {
if (err) throw err;
fs.writeFile('my.csv', output, (err) => {
if (err) throw err;
console.log('my.csv saved.');
});
});