"arrayObjectsToSv" est une fonction JavaScript qui permet de convertir un tableau d'objects JSON au format CSV.
function arrayObjectsToSv(a, b) {
var x = (b && b.columnDelimiter) ? b.columnDelimiter : ';',
y = (b && b.lineDelimiter) ? b.lineDelimiter : 'n',
k = Object.keys(a[0]),
l = k.length,
s = k.join(x) + y,
i = 0, j = a.length, r;
for (; i < j; i++) {
r = a[i];
if (i > 0) {
s += y;
}
for (var c = 0; c < l; c++) {
if (c > 0) {
s += x;
}
s += r[k[c]];
}
}
return s;
}
La fonction prend en premier argument un tableau d'objets dont les clés serviront à créer les entêtes.
var data = [
{
"Entête 1": "Valeur 1",
"Entête 2": "Valeur 2"
},
{
"Entête 1": "Valeur 3",
"Entête 2": "Valeur 4"
}
];
arrayObjectsToSv(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": "Valeur 1",
"Entête 2": "Valeur 2"
},
{
"Entête 1": "Valeur 3",
"Entête 2": "Valeur 4"
}
];
var options = {
columnDelimiter: ',',
lineDelimiter: '|'
};
arrayObjectsToSv(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 !