0
votes

Exporter une boucle JavaScript pour CSV

Supposons que j'ai ce code de boucle.

function downloadFile(fileName, urlData) {

var aLink = document.createElement('a');
aLink.download = fileName;
aLink.href = urlData;

var event = new MouseEvent('click');
aLink.dispatchEvent(event);
}

downloadFile('output.csv', 'outputDiv.innerHTML/csv;charset=UTF-8,' + encodeURIComponent(outputDiv.innerHTML));


3 commentaires

Assurez-vous que votre contenu de div a des chaînes contenant des virgules. Depuis que nous ne pouvons pas voir le contenu.


J'ai déjà mis la sortie div.innerhtml = ""; Au début du code


Bienvenue à @marinaramosa. Si possible, veuillez inclure des exemples de code où téléchargles est appelé et échantillon HTML.


3 Réponses :



1
votes

Cette solution est dans JavaScript forte>. J'ai ajouté un écouteur d'événement sur le bouton de sorte que lorsqu'il est cliqué, il saisira le OUTERHTML code> de

code>.

OUTERHTML code> comprend strong> les balises d'ouverture et de fermeture de l'élément ainsi que du contenu, tandis que innerhtml code> ne comprend pas les étiquettes d'ouverture et de fermeture. P>

de MDN Web Docs P >

Le OUTERHTML CODE> FORT> Attribut de l'interface d'élément DOM reçoit le fragment HTML sérialisé décrivant l'élément, y compris ses descendants. Il peut également être réglé pour remplacer l'élément avec des nœuds analysés de la chaîne donnée. P> blockQuote>

lorsque le Innertext code> est extrait de toutes les lignes et colonnes. download_csv code> est appelé. p>

Vous pouvez télécharger les données à l'aide d'un objet code> blob code> qui est un Objet de type de fichier de données brutes immuables . P>

<table>
    <tr><th>Name</th><th>Age</th><th>Country</th></tr>
    <tr><td>Tony</td><td>26</td><td>USA</td></tr>
    <tr><td>Levi</td><td>19</td><td>Spain</td></tr>
    <tr><td>Calvin</td><td>32</td><td>Russia</td></tr>
</table>
<button>Export HTML table to CSV file</button>


0 commentaires

0
votes

Je ne sais pas de quoi essayez-vous de réaliser dans votre dernière ligne, mais cela ne ressemble pas à un dataurl, un dataurl ressemble à:

Données: [] [; base64],

Maintenant qu'être dit, l'idée est de créer une URL d'objet via une combinaison de blob et window.url.createobjecturl : xxx

l'utiliser comme ceci: dl (sortiediv.innerhtml, "somename")

Il est important de vous rappeler que certains navigateurs peuvent Ne pas autoriser cliquer pour déclencher sur un élément pas dans le DOM encore, dans ce cas, vous voudrez peut-être ajouter l'élément un élément sur le corps, réglez-le invisible, puis retirez-le à l'intérieur de SettimeOut.

Je l'ai écrit dans la plaine ES5, vous pouvez vous adapter à const , promis au lieu de des déclarations de sécurité, etc.


0 commentaires