IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

[GWT] Obtenir un fichier généré "on the fly"?


Sujet :

GWT et Vaadin Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut [GWT] Obtenir un fichier généré "on the fly"?
    Bonjour à tous.

    Mon problème est le suivant:

    J'ai sur ma page GWT des données dans un GridPanel (et donc un Store).
    Ces données, j'aimerai pouvoir les exporter dans un fichier pour que l'utilisateur puisse le télécharger (dans mon cas il s'agit d'un fichier excel).

    Considérez que les données présentent dans mon GridPanel ne sont pas accessibles du côté serveur, je veux dire par là que les données n'existent QUE du côté client.

    Ma question est donc la suivante: comment faire?

    Voici ce que j'ai fait et qui forcément ne fonctionne pas:

    Coté client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    		exportService = (ExportServiceAsync) GWT.create(ExportService.class);
    		ServiceDefTarget exportServiceEndpoint = (ServiceDefTarget) exportService;
    		exportServiceEndpoint.setServiceEntryPoint("services/exportService");
     
    		AsyncCallback callback = new AsyncCallback() {
    			public void onSuccess(Object result) {
    			}
    			public void onFailure(Throwable ex) {
     
    			}
    		};
     
    		exportService.exportMessages(donnée1, donnée2, xxx, xxx, xxx, callback);
    Voici l'implémentation de mon service:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	public void exportMessages(String context, String type, String name, String keyword, String application) {
    		try {
    			  this.getThreadLocalResponse().setContentType("application/vnd.ms-excel");
    			  this.getThreadLocalResponse().setHeader("Content-Disposition", "attachment; filename=sampleName.xls");
    			  WritableWorkbook w = Workbook.createWorkbook(this.getThreadLocalResponse().getOutputStream());
    			  WritableSheet s = w.createSheet("Demo", 0);
    			  s.addCell(new Label(0, 0, "Hello World"));
    			  w.write();
    			  w.close();
    		  } catch (Exception e) {
    			  //throw new ServletException("Exception in Excel Sample Servlet", e);
    		  }
    	}
    Forcément, je me doutais bien que vu que GWT ne fait que des appels asynchrones celà n'allait pas fonctionner....

    Mais alors quid? Comment faire? Quelle est la solution (si simple sans framework...)?

    Et petite question bonus également, comment à partir d'un Hyperlink pointer vers une url "à l'extérieur" par exemple un lien sur mon site qui pointe vers http://www.google.be ? C'est fou... mais il n'y a rien qui fonctionne....

    Je vous remercie d'avance!

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    sans trop vouloir m'avancer je n'ai jamais entendu parler de librairie pour générer un fichier Excel coté client juste en Javascript.

    il devrait être possible de faire des choses avec un ActiveX ou encore en basculant les données à un Flash qui générera le fichier Excel.

    Pour ma part j'opterai pour developper une servlet qui recoit les données de ton gridpanel puis qui genere un fichier Excel.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par zeth696 Voir le message
    sans trop vouloir m'avancer je n'ai jamais entendu parler de librairie pour générer un fichier Excel coté client juste en Javascript.

    il devrait être possible de faire des choses avec un ActiveX ou encore en basculant les données à un Flash qui générera le fichier Excel.

    Pour ma part j'opterai pour developper une servlet qui recoit les données de ton gridpanel puis qui genere un fichier Excel.
    Evidemment, il s'agit bien de ma servlet qui doit créer le fichier Excel.
    Mon service est bien une servlet. (L'implémentation)

    Mais vu que GWT ne fait apparemment QUE des appels asynchrones il ne me semble pas possible que comme réponse à un de ses appels, on renvoie un fichier excel.
    Mon problème se situe là.

  4. #4
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    Salut,

    est ce que c'est qqchose comme ca que tu veut faire : http://www.developpez.net/forums/d62...ment-fichiers/

    ?

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  5. #5
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Pourquoi coté client, sur l'action de ton choix, tu n'affiches pas simplement un lien html que l'utilisateur cliquerait et qui appellerait ta servlet ?

    On n'est pas non plus toujours obligé d'utiliser les services gwt.

    Keep it Simple

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    C'est bien ce que j'ai du faire ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [http] Accéder à un fichier généré par un serveur
    Par Seiya dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/02/2007, 18h10
  2. [JExcel] Modifier un fichier généré
    Par philippe13 dans le forum Documents
    Réponses: 27
    Dernier message: 21/03/2006, 14h41
  3. Réponses: 2
    Dernier message: 01/12/2005, 13h10
  4. Exploitation de fichiers générés par un journal
    Par Brice Yao dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/06/2005, 16h19
  5. Réponses: 2
    Dernier message: 15/04/2004, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo