web-dev-qa-db-ja.com

Node.jsでCSVに書き込む

Node.jsでCSVにデータを書き込むの方法を見つけるのに苦労しています。

使用可能なCSVプラグインはいくつかありますが、stdoutに「書き込む」だけです。

理想的には、ループを使用してrow-by-rowベースで記述したいと思います。

37
Phil Bottomley

node-csv-parsernpm install csv)ストリームで使用できることを具体的に述べています(fromStreamtoStreamを参照)。そのため、stdoutを使用するのはハードコーディングされていません。

他のいくつかのCSVパーサーも、npm search csv-あなたもそれらを見たいかもしれません。

25
Joe White

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!');
  }
});
34
John Vandivier

次に、 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.');
  });
});
12
cbaigorri