Hoe kan ik JavaScript array info exporteren naar csv (aan client kant)?
Ik weet dat er veel vragen van deze aard zijn, maar ik moet dit doen met behulp van JavaScript. Ik gebruik Dojo 1.8
en heb alle attribuut info in een array, die er als volgt uitziet:
[["name1", "city_name1", ...]["name2", "city_name2", ...]]
Enig idee hoe ik dit kan exporteren naar CSV
aan de client kant?
457
3
U kunt dit doen in native JavaScript. U'zult uw gegevens moeten parseren in het juiste CSV-formaat (ervan uitgaande dat u een array van arrays gebruikt voor uw gegevens zoals u in de vraag hebt beschreven):
of de kortere manier (met behulp van pijl functies):
Dan kun je JavaScript's
window.open
enencodeURI
functies gebruiken om het CSV bestand als volgt te downloaden:Edit:
Als je je bestand een specifieke naam wilt geven, moet je het een beetje anders doen, omdat dit niet wordt ondersteund bij het benaderen van een data URI met de `window.open` methode. Om dit te bereiken, kun je een verborgen `` DOM node maken en het `download` attribuut als volgt instellen:Ik kwam hier op zoek naar een beetje meer RFC 4180 conformiteit en ik slaagde er niet in een implementatie te vinden, dus maakte ik een (mogelijk inefficiënte) voor mijn eigen behoeften. Ik dacht dat ik het met iedereen zou delen.
Hopelijk kan dit in de toekomst iemand helpen. Dit combineert zowel de codering van de CSV samen met de mogelijkheid om het bestand te downloaden. In mijn voorbeeld op [jsfiddle](http://jsfiddle.net/a5E9m/2/). U kunt het bestand downloaden (uitgaande van een HTML 5 browser) of de uitvoer in de console bekijken.
UPDATE:
Chrome lijkt nu de mogelijkheid te hebben verloren om het bestand een naam te geven. Ik'ben niet zeker wat'is gebeurd of hoe het te repareren, maar telkens als ik deze code gebruik (inclusief de jsfiddle), is het gedownloade bestand nu genaamd
download.csv
.De oplossing van @Default werkt perfect in Chrome (hartelijk dank daarvoor!) maar ik had een probleem met IE.
Hier's een oplossing (werkt op IE10):