2017-07-03 4 views
0

Mon exigence est d'exporter un Excel de l'application GWT sur le bouton clic du bouton d'exportation. Dans mon cas, il n'est pas nécessaire d'envoyer des données du client au serveur car je peux directement obtenir des données de la base de données (les mêmes données sont remplies sur le client qui est exporté). Tout ce que j'ai essayé d'envoyer un appel RPC à partir du site client. mais je ne suis pas capable de comprendre comment exporter Excel en recevant l'appel RPC sur le site du serveur.Comment exporter le fichier Excel dans GWT?

Répondre

0

Ceci est certainement possilbe 100% côté client.

Vous pouvez utiliser un générateur JavaScript JavaScript comme https://github.com/stephenliberty/excel-builder.js et l'appeler depuis GWT avec jsni ou jsinterop.

Plus tard, vous pouvez enregistrer le fichier par

Note pour la génération d'un Excem fichier, vous pouvez aussi simplement créer un fichier HTML avec des balises de table et l'enregistrer comme .xls, il avec filesaver.js. J'utilise la solution html et le téléchargement filesaver.js/html5 dans mon projet et cela fonctionne sans problème, et sans avoir besoin de code serveur, ni de plugin sur le client. 100% HTML5/javascript.

0

Il est impossible de générer un fichier Excel sur le site client avec GWT natif sans ajouter un produit tiers. (Voir KNARF réponse ci-dessous)

Personnellement, je préfère cette solution:

  • ouvrir une nouvelle fenêtre sur le client

  • utiliser une URL, qui déclenche une servlet sur le serveur

  • laisser le serveur générer le fichier Excel

  • enregistrer le fichier nouvellement généré dans l'espace Web

  • retour l'URL du fichier Excel au client

Cela fonctionne pour moi.

+0

La déclaration suivante de cet article est fausse car cela fonctionne sans aucun problème avec le support html5: "Il est impossible de générer un fichier Excel sur le site client - ni avec GWT ni avec toute autre technologie de site client. avec quelque chose installé sur le client (Flash fe) " – Knarf

+0

Oui, vous avez raison. Je vais mettre à jour la réponse. –