Convertir un tableau de données JavaScript en CSV

"arrayToSv" est une fonction JavaScript qui permet de transformer un tableau ("Array") en CSV.

function arrayToSv(a, b) {
  var s = '', i = 0, j = a.length,
      c = (b && b.columnDelimiter) ? b.columnDelimiter : ';',
      l = (b && b.lineDelimiter) ? b.lineDelimiter : '\n';
  for (; i < j; i++) {
    s += ((s !== '') ? l : '') + a[i].join(c);
  }
  return s;
}

Elle prend en premier argument un tableau JavaScript qui sera converti en CSV avec les délimiteurs par défaut.

var data = [
  ["Entête 1", "Entête 2"],
  ["Valeur 1", "Valeur 2"],
  ["Valeur 3", "Valeur 4"]
];

arrayToSv(data);

// renvoie :
// "Entête 1;Entête 2
//  Valeur 1;Valeur 2
//  Valeur 3;Valeur 4"

Le second argument de la fonction permet de modifier les délimiteurs du CSV avec 2 paramètres :

  • "columnDelimiter" : séparateur de valeurs (";" par défaut)
  • "lineDelimiter" : séparateur de lignes (retour à la ligne "\n" par défaut)
var data = [
  ["Entête 1", "Entête 2"],
  ["Valeur 1", "Valeur 2"],
  ["Valeur 3", "Valeur 4"]
];

var options = {
  columnDelimiter: ',',
  lineDelimiter: '|'
};

arrayToSv(data, options);

// renvoie : "Entête 1,Entête 2|Valeur 1,Valeur 2|Valeur 3,Valeur 4"

Cet article vous a-t-il été utile ?

Super :)
Merci d'avoir donné votre avis !

Oups :(
Merci d'avoir donné votre avis qui va nous permettre de nous améliorer !

^