2011-07-27 9 views
1

Encore une fois, j'ai besoin de faire quelque chose qui semble simple mais qui est en fait frustrant de m'évader.Exporter JavaScript Tableau de données de tableau HTML filtré vers MS Excel ou CSV

Sur le site intranet de mon entreprise, nous disposons d'un grand tableau de données auquel un filtre javascript est appliqué afin que les gestionnaires et les autres parties intéressées puissent localiser rapidement les lignes qui leur sont pertinentes. Le filtre que j'utilise peut être trouvé au http://tablefilter.free.fr/.

Mon problème se pose lorsque j'ai besoin d'un bouton pour exporter les résultats filtrés vers Excel afin que les gestionnaires puissent accéder aux données hors ligne. Il existe de nombreuses options simples pour exporter la table HTML vers Excel, mais j'ai été incapable de comprendre comment obtenir juste les résultats filtrés à exporter. (Remarque: ce site intranet ne sera accessible via IE)

Il y a une fonction en tant que partie du filtre de la table javascript, GetFilteredData(), qui va récupérer les cellules de données filtrées et entrée ceux-ci dans un tableau, i pense s'appeler filteredData []. Ce tableau est formulé comme tel: [rowindex, [value1, value2, value3 ...]].

Alors, comment puis-je obtenir ce tableau dans un fichier Excel ou CSV? Encore une fois, ceci sera accessible uniquement par IE, donc les objets et les contrôles activeX sont acceptables.

Aussi, je devrais probablement noter que je ne peux pas utiliser les technologies côté serveur alors s'il vous plaît limiter vos réponses aux limites de HTML, javascript et activeX. Merci!

Répondre

2

FYI: DataTables a un joli plugin appelé TableTools qui peut exporter une table vers csv côté client. C'est réalisé en utilisant Flash. Si vous êtes satisfait du filtre de DataTables, je pense que ce serait une bonne solution.

http://www.datatables.net/extras/tabletools/

0

Si vous utilisez IE à partir de la version 8, vous pouvez utiliser les URL data:. Il suffit de générer l'URL et pointez le borwser là en utilisant location.href. Les données dans CSV peuvent être générées par javascript et base64 codé.

+0

peut vous donner un exemple. J'ai essayé la même approche mais il semble que cela ne fonctionne que sur le chrome. Voici ma tentative http://stackoverflow.com/questions/14964035/how-to-export-javascript-array-info-to-csv-on-client-side – Sam007

-1

Vous pourriez envisager une approche qui repose sur la manipulation de chaînes.

Une fois que vous avez ce tableau, vous pouvez le transformer en une chaîne JSON. Essayez cette bibliothèque légère populaire (de json2.js):

https://github.com/douglascrockford/JSON-js

Exemple:

text = JSON.stringify(['e', {pluribus: 'unum'}]); 
// text is '["e",{"pluribus":"unum"}]' 

Vous devriez avoir quelque chose comme

var dataString = '["rowindex",["value1","value2","value3"]]' 

À ce stade, vous pouvez utiliser un remplacement regex sur la chaîne pour le mettre en forme dans l'un ou l'autre style.

Questions connexes