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

JSF Java Discussion :

Export vers excel depuis JSF avec netbeans


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 26
    Points
    26
    Par défaut Export vers excel depuis JSF avec netbeans
    Bonjour,
    Malgré des reherches, je n'ai pas reussit à trouver mon bonheur.
    Donc voila mon probleme:
    Je travails sur JSF avec l'outil visuel de NetBeans.
    L'application semble bien tourné et je parviens à créer un rapport.
    J'aimerai désormais exporter ce dernier vers excel.
    J'utilise donc
    HttpServletResponse res = (HttpServletResponse)getExternalContext().getResponse();
    res.setContentType("application/vnd.ms-excel");
    res.setHeader("Content-Disposition", "attachment; filename=Report.xls");
    Ce bout de code me permet d'exporter ma page vers un fichier excel mais la page contient un peu de code et du coup ca empeche l'affichage dans Excel.
    Je voudrais donc savoir s'il était possible d'effectuer un export vers excel mais uniquement de la table souhaité.
    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    si ton template ne contient que un <h:dataTable>, çà devrais n'exporter qu'une table, non?

  3. #3
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour
    Citation Envoyé par Evenmor Voir le message
    Ce bout de code me permet d'exporter ma page vers un fichier excel mais la page contient un peu de code et du coup ca empeche l'affichage dans Excel.
    C'est à dire ? Veux tu reformuler s'il te plaît ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    djo.mos: je crois qu'il utilise un "truc" d'excel quand tu envoie un fichier de type excell (d'ou les header) qui contient juste une table html, excel convertit çà en une feuille

    Ca permet, depuis des application web de faire des "fichier excel" (qui sont en réalité du html, mais l'utilisateur vois pas la différence puisque excel l'ouvre sans broncher)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Oui, c'est ca. En fait, je ne souhaite pas créer exactement un fichier excel, je veux juste passer une table html dans un fichier d'extension xls pour qu'excel l'ouvre sous forme de tableau.
    Cependant mon probleme ici, c'est que avec netbeans, je ne parviens pas a créer une page avec juste la table. Il y a toujours un petit script et des balise XML qui empeche excel de l'ouvrir bien comme il faut.

    Dans le template JSF généré par netbeans, il y a plein de balise <JSP:root, <JSP: directiv.page etc.
    Et je ne peux pas les effacer, sinon netbeans me fait des erreurs.

    Je pensais au début à recréer une page vide avec uniquement la table à travers le code behind diretement...mais je n'y parviens pas vraiment.

    Vous n'auriez pas une idée svp?
    Merci

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Citation Envoyé par Evenmor Voir le message
    Vous n'auriez pas une idée svp?
    Yep: exporter le contenu de la table dans un fichier CSV, ce qui est 100 fois plus propre.
    Rien de sorcier: il suffit d'ajouter un bouton ou lien "Export de CSV" qui invoque une méthode exportToCsv.
    Dans cette méthode, tu récupères l'outputStream du response (et tu l'enveloppes dans un writer), et d'ecrire le srésultat ladedans.

    Dans ce cas, le résultat est une boucle for sur tes lignes, et pour chaque ligne un print avec la valzeur de chaque colonne séparés par des ";" par exemple.

    Sinon, y'a aussi JasperReports qui te permet de faire ça (il se charge de générer le CSV ou XLS ou PDF etc.).

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Ben ouvre un notepad et fait ton fichier jsp à la main. Tu met un directive d'import des la taglib jsf et tu commence comme ceci:

    <h:datatable> etc etc.

    Si netbeans met des crasses dans tes fichier jsp dont t'arrive pas à te débarrasser, ben passe par par netbean pour créer le ficheir alors ^^ La seule chose qui compte c'est ce qui arrive dans la webapp.


    djo.mos: c'est bien le csv, et perso je préfère toujours ce format quand c'est possible, l'ennui c'est que c'est pas très user friendly. Le user va devoir choisir le caractère séparateur, le marqueur de texte et l'encodage du fichier. Hors, il faut admettre, 90% des user ont pas la moindre idée de ce que c'est. Et puis, il y a les client, qui souvent demande un export "Excel" et quand ils voient une page d'import ou faut entrer des trucs, ils sont pas contents

  8. #8
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    djo.mos: c'est bien le csv, et perso je préfère toujours ce format quand c'est possible, l'ennui c'est que c'est pas très user friendly. Le user va devoir choisir le caractère séparateur, le marqueur de texte et l'encodage du fichier. Hors, il faut admettre, 90% des user ont pas la moindre idée de ce que c'est. Et puis, il y a les client, qui souvent demande un export "Excel" et quand ils voient une page d'import ou faut entrer des trucs, ils sont pas contents
    Yep, justement, c'est pour celà que j'ai mentionné JasperReports à la fin qui lui, te permet de génerer de véritables XLS

    tuto d'un de nos membres (JauB) sur la chose.

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    ha oui, pas vu :p

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Merci pour vos conseils,
    Pour l'instant j'ai opté pour la solution de réecrire ma table html a blanc sur un flux en sorti (il fallait faire vite, les users attendent). Bon c'est pas super propre et ca utilise un trick de excel...mais les utilisateurs n'y voit que du feu.
    Par contre le rapport sur excel n'est du coup pas tres jolie^^".
    Par contre, jaspertreport me semble vraiment bien. Les rapports excels ou pdf que j'ai vu en exemple dessus sont vraiment bien fait, il faudra que j'y jette un oeil plus interressé.
    Seulement, est ce que les libraires jaspert sont open source/gratuit? Les utiliser au sein d'une entreprise pour ses rapports n'est pas genant?
    Merci en tout cas.

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    les outils opensource sont presque toujours utilisable au sein d'entreprises, sinon ils ont aucune raison d'exister si personne peut les utiliser. Pour ce qui est de la redistribution des projets basés dessus, la question peut par contre se poser. Jasper reports est en LGPL, donc tu peux vendre un produit closed source qui l'utilise. Par contre si tu modifie la librairie en elle même, t'es obligé de mentionner les modification et de les distribuer en open source (uniquement les modifs de la lib, ton appli peut rester closed source)

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    OK, donc s'il s'agit ici juste d'un projet interne à une entreprise sans "vente" à proprement parler, son utilisation n'est donc pas exclu.
    Merci pour tous ces renseignements.

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

Discussions similaires

  1. [Requete] Export vers Excel depuis Access
    Par Gylles_ dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 21/02/2014, 12h33
  2. Problem avec l'export vers excel 2003
    Par nico18987 dans le forum SharePoint
    Réponses: 4
    Dernier message: 26/04/2007, 16h57
  3. [Automation]export vers excel avec arborescence
    Par djo.alpha dans le forum Access
    Réponses: 5
    Dernier message: 20/04/2007, 09h55
  4. Réponses: 13
    Dernier message: 12/09/2006, 14h32
  5. Réponses: 5
    Dernier message: 25/04/2006, 16h04

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