Détails
Comment exporter les informations d'un tableau JavaScript vers un fichier csv (côté client) ?
Je sais qu'il y a beaucoup de questions de cette nature mais j'ai besoin de faire cela en utilisant JavaScript. J'utilise Dojo 1.8
et j'ai toutes les informations sur les attributs dans un tableau, qui ressemble à ceci :
[["name1", "city_name1", ...]["name2", "city_name2", ...]]
Avez-vous une idée de la façon dont je peux exporter ces informations au format CSV
du côté client ?
457
3
Vous pouvez le faire en JavaScript natif. Vous devrez analyser vos données au format CSV correct (en supposant que vous utilisez un tableau de tableaux pour vos données, comme vous l'avez décrit dans la question) :
ou la méthode la plus courte (en utilisant les [fonctions flèches][1]) :
Vous pouvez ensuite utiliser les fonctions JavaScript
window.open
etencodeURI
pour télécharger le fichier CSV comme suit :Edit:
Si vous voulez donner un nom spécifique à votre fichier, vous devez procéder un peu différemment car cela n'est pas pris en charge pour accéder à une URI de données à l'aide de la méthode `window.open`. Pour ce faire, vous pouvez créer un noeud DOM caché `` et définir son attribut `download` comme suit :[1] : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
Je suis venu ici pour chercher un peu plus de conformité à la RFC 4180 et je n'ai pas trouvé d'implémentation, alors j'en ai fait une (peut-être inefficace) pour mes propres besoins. J'ai pensé que je pourrais la partager avec tout le monde.
J'espère que cela pourra aider quelqu'un à l'avenir. Cela combine à la fois l'encodage du CSV et la possibilité de télécharger le fichier. Dans mon exemple sur [jsfiddle](http://jsfiddle.net/a5E9m/2/). Vous pouvez télécharger le fichier (en supposant un navigateur HTML 5) ou afficher la sortie dans la console.
UPDATE:
Chrome semble maintenant avoir perdu la possibilité de nommer le fichier. Je ne suis pas sûr de ce qui s'est passé ou de la façon de le réparer, mais chaque fois que j'utilise ce code (y compris le jsfiddle), le fichier téléchargé est maintenant nommé
download.csv
.La solution de @Default fonctionne parfaitement sur Chrome (merci beaucoup pour cela !) mais j'ai eu un problème avec IE.
Voici une solution (qui fonctionne sur IE10) :