2010-03-25 8 views
1

J'ai une page de tableau HTML et je veux l'enregistrer en tant que fichier CSV sur la machine du client s'ils cliquent sur le bouton Enregistrer.Enregistrer le tableau HTML en CSV en utilisant Javascript

Ceci devrait utiliser javascript dans Firefox et fonctionner avec toutes les versions d'IE.

+3

ne dispose pas des autorisations d'écriture sur la machine du client ... –

+0

revenir au serveur pour obtenir les données dans l'autre format est le moyen le plus simple (et aussi le seul qui est en tout fiable). En ce qui concerne le client, tout ce dont vous avez besoin est un simple lien. – Quentin

+0

Vous pouvez demander à l'utilisateur d'obtenir une fenêtre pop-up pour le téléchargement après avoir cliqué sur Enregistrer: Voir http://stackoverflow.com/questions/16078544/export-to-csv-using-jquery-and-html pour plus de détails. –

Répondre

1

Vous ne pouvez pas le faire en utilisant les fonctionnalités javascript, car javascript n'a pas la permission d'écrire sur l'ordinateur client, vous pouvez envoyer une requête au serveur pour créer un fichier csv et le renvoyer au client.

+0

merci pour toutes vos réponses – Anbu

+1

serait bien si vous en choisissez un et l'accepter, si vous voulez que les gens continuent de répondre à vos autres questions: D –

0

Vous ne pouvez pas les forcer à télécharger un fichier en utilisant JavaScript.

Le meilleur pari est d'utiliser PHP ou ASP pour créer le fichier pour eux côté serveur et avoir un lien vers eux pour télécharger le fichier.

Vous aurez besoin de deux boucles imbriquées, l'une itérative pour chaque étiquette de ligne, l'autre pour chaque ligne de colonne/cellule dans la rangée. Je ne suis pas capable de gérer les cellules fusionnées CSV, mais avec une table HTML, j'imagine que ce n'est pas un problème.

openfile() 
for(i = 0 ; i < num_rows ; i = i + 1) 
{ 
    for(j = 0 ; j < num_culumns ; j = j + 1) 
    { 
     write_to_file(row[i]. column[j].data) 
     write_to_file(cell_denominator) 
    } 
    write_to_file(end_of_line_denominator) 
    write_to_file(new_line) 
} 
close_file() 
0

La manière la plus simple est de faire ce côté serveur. Si vous ne pouvez pas passer par un serveur, vous pouvez toujours ouvrir le fichier de données dans un Data URI, mais ce n'est pas compatible avec toutes les versions d'IE. L'enregistrement direct d'un fichier sur le disque est extrêmement non portable et impossible dans de nombreux cas.

Questions connexes