9
votes

Exportez la table HTML pour exceller - en utilisant jQuery ou java

J'ai une table HTML sur ma page JSP, que je veux être exporté pour exceller sur un bouton Cliquez sur un bouton.

Quelle serait la meilleure façon d'aller à ce sujet?

(pour ex., Comment ferais-je cela en utilisant peut être une fonction jQuery?)

Tous les exemples de code à des fins de démonstration devraient être excellents.


0 commentaires

9 Réponses :


0
votes

Exportation au format de fichier Excel avec jQuery est impossible.

Vous pouvez essayer avec Java. Il y a beaucoup de bibliothèques pour le faire.


1 commentaires

Non ce n'est pas vrai. C'est absolument possible!



0
votes

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.

Vous pouvez utiliser Cette bibliothèque pour vous aider à faire la transformation.


0 commentaires

6
votes

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


0 commentaires

4
votes

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.

Exportation vers la CSV est relativement simple. Vous pouvez trouver un exemple de code complet dans Cette réponse .


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.


0 commentaires

1
votes

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 SAVEAS () CODE> SPEC). P>

L'utilisation finira par regarder quelque chose comme: P>

var resultFromTable2CSV = $('#table-id').table2CSV({delivery:'value'});

var blob = new Blob([resultFromTable2CSV], {type: "text/csv;charset=utf-8"});

saveAs(blob, 'desiredFileName.csv');


0 commentaires

3
votes

Vous pouvez analyser la table à l'aide d'une bibliothèque comme http://jsoup.org/

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


0 commentaires

0
votes

Je peux vous suggérer d'essayer http://code.google.com / p / gwt-table-to-excellèle / , au moins la partie serveur.


0 commentaires

1
votes

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.

  1. 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());
    
  2. 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();
    }
    
  3. 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>
    


0 commentaires

0
votes

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"
    }); 
});


0 commentaires