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 :

ExtendendDataTable , Fichier Excel


Sujet :

JSF Java

  1. #1
    Membre Expert
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Par défaut ExtendendDataTable , Fichier Excel
    Bonjour toute le monde,

    j'ai un problème auquel je n'arrive pas à remédier.

    En fait voilà l'idée :

    J'ai une page Web (JSF + Richfaces + Ajax4Jsf) dans laquelle j'affiche une table (ExtendedDataTabe) avec des données ( java.util.List<> )

    En effet je voudrais créer un bouton "Copier" qui au clique me permettra de copier le contenu de cette table et je pourrais coller cette dernière dans une feuille Excel.

    Si vous avez des idées n'hésitez pas.

    J'ai essayé d'utiliser l'API jExcel pour créer le fichier Excel à partir de ma table (java.Util.List ) mais j'ai envie de mettre cette table dans le presse papiers pour pouvoir la coller dans Excel tout en gardant la même structure de présentation, càd sous forme d'une table.

    Merci beaucoup pour votre aide.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Il y'a un composant de tomahawk.sandbox qui faisait quelque chose dans ce genre là, mais, il ne fonctionnait pas avec Facelets/Richfaces, il faut voir si'l n'a pas évolué,
    le principe, il prenait le code html de la table generé pour créer le fichier excel...

    Le mieux est de faire ton fichier excel toi même, tu peux ajouter des styles, pour que ça ressemble à une table..en tout cas c'est possible avec l'api apache poi.

  3. #3
    Membre Expert
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Par défaut
    Bonjour tout le monde,

    J'ai fini par trouver une solution, je vous explique.

    Pour commencer il y' a une chose à savoir, c'est que Excel gére son presse papier d'une manière très facile, il sépare les lignes par des retour chariot (en java "\n") et sépare les colonnes par des tabulations (en java "\t") .

    Vous trouverez ça bien expliqué sur cette page :

    http://www.javaworld.com/javatips/jw...77.html?page=2

    Donc tout ce qui me restait à faire c'est que quand je clique sur mon bouton "Copier vers excel" c'est de créer un StringBuffer et de concaténer toutes les lignes de ma table (java.util.List) en séparant les différentes lignes par "\n" et les différentes colonnes par des "\t". comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    StringBuffer pp = new StringBuffer(); //Chaine a mettre dans le PressePapier
     
    //Insertion des headers        
    pp.append("Colonne 1\tColonne 2\tColonne 3\n");
     
     
    //Insertion des diffèrentes lignes     
            for (Object obj : list ) {
     
                Sr sr = (Sr) obj;
     
                pp.append(sr.getColonne1());
                pp.append("\t");
     
                pp.append(sr.getColonne2());
                pp.append("\t");
     
                pp.append(sr.getColonne3());
     
                pp.append("\n");
            }
    Et après de mettre la chaine résultante dans le presse papier comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    try {
                StringSelection ss = new StringSelection(pp.toString());
                Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,
                        null);
            } catch (IllegalStateException e) {
                e.printStackTrace();
            }
    Voilà et le tour est joué, maintenant il suffit de se placer sur une feille Excel et de faire un Ctrl+V.

    Merci pour vos réponses et j'éspère que celle là aidera quelques uns.

    Un bon s'impose.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

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

Discussions similaires

  1. Extraction de données sur des fichiers excel
    Par iupgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 13h53
  2. Enregistrement d'un fichier Excel par automation
    Par tiopan dans le forum Access
    Réponses: 2
    Dernier message: 04/12/2003, 19h57
  3. Sauvegarde fichier excel
    Par tiopan dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/10/2003, 13h36
  4. [Turbo Pascal] Utiliser un fichier Excel
    Par Lady dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 09/03/2003, 20h34
  5. Réponses: 2
    Dernier message: 22/07/2002, 12h13

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