2012-04-19 51 views
15

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

利用可能なCSVプラグインはいくつかありますが、標準出力には「書き込み」しかありません。 理想的には、ループを使用して行単位でベースに書きたいと思っています。

ありがとうございます。

+2

*「ただし、stdoutにのみ書き込みます」*実際には**驚くべきことです。書き込み可能な 'Stream'に書き込むことはありません。**は' stdout'に**していますか? –

+0

テストしたモジュールへのリンクを含めることができますか? –

+0

nodejを使ってCSVを生成するチュートリアルがあります。 http://programmerblog.net/generate-csv-using-nodejs/ –

答えて

16

node-csv-parsernpm install csv)のドキュメントでは、特にストリームで使用できることが記載されています(fromStreamtoStream参照)。したがって、stdoutを使用するのはハードコードされていません。

npm search csvでも他のCSVパーサーがいくつか出てきます。あなたもそれを見たいかもしれません。

10

あなたが使用することができます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!'); 
    } 
}); 
0

はここfs.writeFileを使用してCSVファイルにメモリに収まるデータセットを書くことcsv-stringifyを使った簡単な例です。

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.'); 
    }); 
}); 
関連する問題