Convertir un tableau de données JavaScript en CSV
Concept et utilisation
La fonction arrayToSV()
permet de convertir un tableau de données JavaScript (Array
) en format CSV.
Il est possible de définir le jeu de données ainsi que les séparateurs de données.
Fonction
arrayToSv()
Retourne des données en format CSV à partir d'un tableau de données JavaScript (
Array
).- Syntaxe
arrayToSV(donnees, options);
- Paramètres
donnees
(Array)Le paramètre
donnees
de la fonctionarrayToSV()
définit le tableau de données JavaScript à convertir en format CSV.options
(Object)Le paramètre
options
de la fonctionarrayToSV()
définit les séparateurs de données à utiliser pour convertir les données.- Propriétés
lineDelimiter
La propriété
lineDelimiter
du paramètreoptions
définit les séparateurs de lignes.
Si cette propriété est omise, la valeur par défaut "\n
" sera utilisée.columnDelimiter
(String)La propriété
columnDelimiter
du paramètreoptions
définit les séparateurs de colonnes.
Si cette propriété est omise, la valeur par défaut ";
" sera utilisée.columnQuote
(String)La propriété
columnQuote
du paramètreoptions
définit les caractères de citation à ajouter avant et après une valeur contenant les caractères utilisés pour les séparateurs.
Si cette propriété est omise, la valeur par défaut "'
" sera utilisée.
Exemple de conversion d'un tableau de données JavaScript en format CSV
var donnees = [
["Entête 1", "Entête 2"],
["Valeur 1", "Valeur 2"],
["Valeur 3", "Valeur 4"]
];
var options = {
lineDelimiter: '\n',
columnDelimiter: ';',
columnQuote: "'"
};
arrayToSV(donnees, options);
// renvoie : "Entête 1;Entête 2
// Valeur 1;Valeur 2
// Valeur 3;Valeur 4"
Code source de la fonction
function arrayToSV(a, b) {
b = b || {};
var l = b.lineDelimiter || '\n',
c = b.columnDelimiter || ';',
q = b.colomnQuote || '"',
d = [];
a.forEach(function (r) {
var t = [];
r.forEach(function (v) {
t.push(typeof v === 'string' && (v.indexOf(l) > -1 || v.indexOf(c) > -1) ? q + v + q : v);
});
t = t.join(c);
d.push(t);
});
d = d.join(l);
return d;
}
Dernière mise à jour le .