J'ai une table HTML sur ma page JSP, que je veux être exporté pour exceller sur un bouton Cliquez sur un bouton. P>
Quelle serait la meilleure façon d'aller à ce sujet? p>
(pour ex., Comment ferais-je cela en utilisant peut être une fonction jQuery?) p>
Tous les exemples de code à des fins de démonstration devraient être excellents. P>
9 Réponses :
Exportation au format de fichier Excel avec jQuery est impossible. P>
Vous pouvez essayer avec Java. Il y a beaucoup de bibliothèques pour le faire. P>
Non ce n'est pas vrai. C'est absolument possible!
Vous devriez créer quelque chose sur le côté serveur (comme un servlet) pour lire le HTML et créer le fichier Excel et le servir à l'utilisateur. p>
Vous pouvez utiliser Cette bibliothèque pour vous aider à faire la transformation. P>
Je recommanderais Apache POI , nous l'utilisons depuis des années, n'a jamais eu de problèmes. < / p>
beaucoup d'exemples en ligne pour obtenir un bon départ et la documentation sur le site est également bonne: http://poi.apache.org/spreadsheet/Quick-Guide.html p>
plutôt exporter vers format CSV . Il est également soutenu par Excel. Exportation vers un format XLS complet (x) en utilisant par exemple Apache POI HSSF ou JEXCEPAPI est lent et la mémoire de la mémoire. p>
Exportation vers la CSV est relativement simple. Vous pouvez trouver un exemple de code complet dans Cette réponse . P>
S'agissant d'exporter vers des fichiers à l'aide de JavaScript, cela n'est pas possible sans interaction de Flash ni du côté serveur. En flash, il n'y a aussi que le téléchargée bibliothèque pouvant exporter vers de simples fichiers TXT. En outre, ExtJS semble avoir un Bibliothèque d'exportation CSV , mais je ne trouve aucune page de démonstration réalisable. P>
Excel peut charger des fichiers CSV (Valeur séparée par des virgules), qui sont fondamentalement des fichiers avec tout ce qui irait dans des cellules Excel distinctes séparées par une virgule.
Je ne sais pas assez sur la façon dont JQuery peut gérer en poussant des informations sur Un fichier que vous téléchargeriez, mais il semble que une bibliothèque de jQuery ait été écrite que au moins transforme les tables HTML au format CSV, et c'est ici: http://www.kunalbabre.com/projects/table2csv.php P >
éditer (29 février 2016): em>
Vous pouvez utiliser la mise en œuvre de table2csv ci-dessus en conjonction avec FILESTERRER.JS (qui est une enveloppe pour le HTML5 W3C L'utilisation finira par regarder quelque chose comme: P> SAVEAS () CODE> SPEC). P> var resultFromTable2CSV = $('#table-id').table2CSV({delivery:'value'});
var blob = new Blob([resultFromTable2CSV], {type: "text/csv;charset=utf-8"});
saveAs(blob, 'desiredFileName.csv');
Vous pouvez analyser la table à l'aide d'une bibliothèque comme http://jsoup.org/ p>
Après avoir reçu les données, vous pouvez le stocker au format compatible Excel (CSV) ou à l'aide de Java Excel Bibliothèque pour cela comme POI ou à l'aide de JDBC pour écrire des données dans une feuille Excel, voir cet exemple: Fichier Excel protégé par mot de passe P>
Je peux vous suggérer d'essayer http://code.google.com / p / gwt-table-to-excellèle / , au moins la partie serveur. P>
Je passe aussi beaucoup de temps pour convertir HTML en excellent après de nombreuses recherches de R & D J'ai trouvé la voie la plus simple.
Créez un champ masqué et qui transmettez vos données HTML sur votre servlet ou votre contrôleur pour E.G P>
StringBuilder exceldata = new StringBuilder();
exceldata.append(request.getParameter("exceldata"));
ServletOutputStream outputStream = response.getOutputStream();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=\"exportexcel.xls\"");
outputStream.write(exceldata.toString().getBytes());
sur votre bouton de HREF Cliquez sur Appeler après la fonction et transmettez vos données HTML à l'aide de document.Formexcel.exceldata.Value et votre servlet ou votre contrôleur dans Document.Formstyle.action P>
function exportDivToExcel() {
document.formexcel.exceldata.value=$('#htmlbody').html();
$("#lblReportForPrint").html("Procurement operation review report");
document.formstyle.method='POST';
document.formstyle.action='${pageContext.servletContext.contextPath}/generateexcel';
document.formstyle.submit();
}
maintenant dans votre contrôleur ou votre servlet écrire après le code P>
<form id="formexcel" action="" method="post" name="formexcel">
<input type="hidden" name="exceldata" id="exceldata" value="" />
</form>
J'ai utilisé le plug-in jquery Table2excel . Cela fonctionne très bien et aucun codage de server n'est nécessaire.
L'utilisation est facile. Inclure simplement JQuery P>
$("button").click(function(){
$("#table2excel").table2excel({
// exclude CSS class
exclude: ".noExl",
name: "Excel Document Name"
});
});