Ecrire dans un fichier CSV dans le noeud.js

J'ai du mal à trouver un moyen de écrire des données dans un CSV dans le nœud.js.

Il y a plusieurs plugins CSV disponibles mais ils n'écrivent que sur stdout.

Idéalement, je veux écrire sur une base ligne par ligne en utilisant une boucle.

25
demandé sur Blaszard 2012-04-19 15:32:52

3 réponses

La documentation pour node-csv-parser (npm install csv) spécifiquement qu'il peut être utilisé avec des cours d'eau (voir fromStream, toStream). Il n'est donc pas codé en dur pour utiliser stdout.

Plusieurs autres analyseurs CSV apparaissent également lorsque vous npm search csv - vous voudrez peut-être les regarder aussi.

21
répondu Joe White 2012-04-19 12:02:57

Vous pouvez utiliser 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!');
  }
});
19
répondu John Vandivier 2015-11-08 00:49:27

Voici un exemple simple en utilisant csv-stringify pour écrire un ensemble de données qui tient en mémoire dans un fichier csv en utilisant fs.writeFile.

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.');
  });
});
3
répondu cbaigorri 2018-01-26 14:21:51