html tableau excel à l'aide de jquery
J'ai cette fonction jquery qui fonctionne, sauf que j'ai besoin d'ajouter quelque chose. J'ai un filtre d'installation sur la table pour cacher les colonnes. Quand j'masquer des colonnes et cliquez sur exporter, il utilise tous les domaines, peu importe. Comment aurais-je seulement exporter les colonnes de la table qui ne sont pas cachés?
var write_to_excel = (function() {
var uri = 'data:application/vnd.ms-excel;base64,',
template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>',
base64 = function(s) {
return window.btoa(unescape(encodeURIComponent(s)))
},
format = function(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
return c[p];
})
}
return function(table, name) {
if (!table.nodeType) table = document.getElementById(table) var ctx = {
worksheet: name || 'Worksheet',
table: table.innerHTML
}
window.location.href = uri + base64(format(template, ctx))
}
})()
Je pense que j'ai besoin de quelque chose comme.
if($(table).display.style!="none")
Merci d'avance.
- Vous auriez à boucle sur les lignes de la table et exporter le code HTML par cellule, selon que la cellule de la colonne est visible ou non.
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple est d'enlever les colonnes de la table avant de vous passer à la fonction format. Puisque vous êtes de jeter la page de toute façon pour naviguer vers un data URI, il n'est pas important de préserver les colonnes cachées.
La façon dont vous supprimez les colonnes cachées dépend de la manière dont les colonnes sont en fait cachés dans la première place. Si c'est juste par l'application d'affichage:aucun pour le caché TDs, vous pouvez le faire en faisant cette modification du code.
Ou vous pouvez utiliser jQuery simple d'exporter le contenu dans un tableau au format Excel, à l'aide de fenêtre.open() méthode. Cela permettra également de résoudre le display:none question d'une manière plus simple 🙂
Type Mime: Facultatif. Le type de document que vous écrivez. La valeur par défaut est "text/html".
remplacer: Facultatif. Si elle est définie, l'entrée de l'historique pour le nouveau document hérite de l'entrée de l'historique du document qui a ouvert ce document.
En dessous de jQuery code permettra d'exporter les données de la table vers Excel.
Si votre tableau HTML contenant des caractères spéciaux, puis avant d'envoyer le code html excel, il doit être codé.
jsFiddle Exemple - http://jsfiddle.net/jquerybyexample/xhYcD/