J'essaie de lire un fichier csv en utilisant le noeud js . Her is my code
fs.readFile(config.csvUploadPath, function read(err, data) {
if (err) {
throw err;
}
console.log(data + 'my data')
});
CONSOLE:
ID
D11
D33
D55
Ici, je veux obtenir les éléments dans l'ID de colonne et stocker ceux-ci dans un tableau. Comment puis je faire ça? Quelqu'un peut-il me proposer de l'aide? Merci . Mon contrôleur:
var partnersModel = new partners(params);
fs.readFile(config.csvUploadPath, function read(err, data) {
if (err) {
throw err;
}
dataArray = data.toString().split(/\r?\n/);
dataArray.forEach(function(v,i){
if(v !== 'DUI'){
partnersModel.dui.Push(v);
}
});
});
partnersModel.save(function(error, response){
Utilisez une bibliothèque, CSV a beaucoup de pièges. Je suis venu pour profiter du paquet csv
. Il se trouve ici: https://www.npmjs.com/package/csv . Voici un exemple très rapide utilisant l’API asynchrone.
const fs = require('fs')
var parse = require('csv-parse')
fs.readFile(inputPath, function (err, fileData) {
parse(fileData, {columns: false, trim: true}, function(err, rows) {
// Your CSV data is in an array of arrys passed to this callback as rows.
})
})
Étant donné que votre fichier ne comporte pas plusieurs valeurs par ligne et ne contient pas de délimiteur autre que newline, il s’agit d’un fichier CSV. Peut-être que String.prototype.split()
est fait pour vous?
const fs = require('fs')
fs.readFile(inputPath, 'utf8', function (err, data) {
var dataArray = data.split(/\r?\n/); //Be careful if you are in a \r\n world...
// Your array contains ['ID', 'D11', ... ]
})
From Comment lire les données d'un fichier * .CSV en utilisant javascript? , utilisez la bibliothèque jQuery-CSV.
Remarque: la bibliothèque est conçue pour gérer toutes les données CSV conformes à la norme RFC 4180, y compris tous les cas Edge désagréables négligés par la plupart des solutions «simples».
var fs = require('fs');
var $ = jQuery = require('jquery');
$.csv = require('jquery-csv');
var sample = './path/to/data/sample.csv';
fs.readFile(sample, 'UTF-8', function(err, csv) {
$.csv.toArrays(csv, {}, function(err, data) {
for(var i=0, len=data.length; i<len; i++) {
console.log(data[i]); //Will print every csv line as a newline
}
});
});
extrait de code tiré des exemples de jquery-csv
here .