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

Documents Java Discussion :

Comment exporter des données d'un [][] object vers un fichier Excel ?


Sujet :

Documents Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Phd student
    Inscrit en
    Décembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Phd student

    Informations forums :
    Inscription : Décembre 2015
    Messages : 26
    Points : 14
    Points
    14
    Par défaut Comment exporter des données d'un [][] object vers un fichier Excel ?
    Bonjour ;
    j'ai des données à exporter d'eclipse à Excel, c'est données sont de type String et je les ai mises dans un object [][]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Object [][] GetTab=new Object [30][40];
    comment faire pour les exporter vers un fichier excel?

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    1. Première possibilité : générer un vrai fichier Excel (xls ou xlsx), à l'aide de l'API Apache POI
    2. Deuxième possibilité : générer un CSV, (Comma-Separated Values = fichier avec valeurs séparées par des virgules)facilement importable dans excel, avec l'API Apache Commons CSV
    3. Troisième possibilité : générer le CSV avec un code Java très simple :
      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
      22
      23
      try(BufferedWriter writer : Files.newBufferedWriter(Paths.get( nomdefichier )) {
       
         boolean firstline = true;
         for(Object[] line : GetTab) {
               if ( firstline) {
                    firstline=false;
               }
               else { 
                    writer.newLine();
               }
               boolean first=true;
               for(Object object : line) {
                    if ( first ) {
                         first=false;
                    }
                    else {
                         writer.write(",");
                    }
                    if ( object!=null ) writer.write(String.valueOf(object));
               }
         }
       
      }
      Une condition toutefois : qu'il n'y ait pas de virgule (,) ou de double-quote (") dans les valeurs des éléments à exporter (sinon il faudra ajouter des doubles-quotes).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Phd student
    Inscrit en
    Décembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Phd student

    Informations forums :
    Inscription : Décembre 2015
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Je vous remercie je vais essayer votre code et voir le résultat.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Phd student
    Inscrit en
    Décembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Phd student

    Informations forums :
    Inscription : Décembre 2015
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    est ce qu'il y'a le bloc catch car j'ai le try signalé en rouge, et on me dit que la méthode newBufferedWriter n'est pas applicable pour l'argument PATH.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je n'ai pas mis la gestion de l'exception (IOException), à toi de voir, si tu fais un catch, un throws, un throw UncheckedIOException...

    On t'écrit vraiment exactement "newBufferedWriter n'est pas applicable pour l'argument PATH." ? C'est quoi le code que tu as exactement tapé ? C'est quoi ce "PATH" ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Salut,

    Tu peux te servir de la librairie Apache POI (comme cité au-dessus), ou bien utiliser une librairie comme universal-serializer que j'ai développé ( oui un peu d'auto-pub ). Exemple d'utilisation :
    Code Java : 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
    import java.nio.file.Path;
    import java.util.List;
    import java.util.ArrayList;
    import fr.ekinci.universalserializer.format.file.excel.ExcelSerializer;
     
    // Au lieu de Object[][], crée toi une classe
    class TaClasseLigne {
        private String tonChamp1;
        private String tonChamp2;
        private String tonChamp3;
    }
     
    // dans ta fonction main :
        List<TaClasseLigne> mesLignes = new ArrayList<>(); // Remplie ta liste de lignes
        ExcelSerializer<TaClasseLigne> s = new ExcelSerializer<>(TaClasseLigne.class);
        Path tonFichierExcel = s.serialize(mesLignes);

    Cordialement,
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  7. #7
    Membre à l'essai
    Femme Profil pro
    Phd student
    Inscrit en
    Décembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Phd student

    Informations forums :
    Inscription : Décembre 2015
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Salut,

    Tu peux te servir de la librairie Apache POI (comme cité au-dessus), ou bien utiliser une librairie comme universal-serializer que j'ai développé ( oui un peu d'auto-pub ). Exemple d'utilisation :
    Code Java : 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
    import java.nio.file.Path;
    import java.util.List;
    import java.util.ArrayList;
    import fr.ekinci.universalserializer.format.file.excel.ExcelSerializer;
     
    // Au lieu de Object[][], crée toi une classe
    class TaClasseLigne {
        private String tonChamp1;
        private String tonChamp2;
        private String tonChamp3;
    }
     
     
    // dans ta fonction main :
        List<TaClasseLigne> mesLignes = new ArrayList<>(); // Remplie ta liste de lignes
        ExcelSerializer<TaClasseLigne> s = new ExcelSerializer<>(TaClasseLigne.class);
        Path tonFichierExcel = s.serialize(mesLignes);

    Cordialement,
    et avec l'object je peux pas la faire? car mon Object est le résultat d'un autre programme.

  8. #8
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Non car lorsque j'ai mis en place cette API, je suis parti du principe qu'il devait être typé et qu'il serait possible d'utiliser une liste dynamique du type que l'on souhaite.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  9. #9
    Membre à l'essai
    Femme Profil pro
    Phd student
    Inscrit en
    Décembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Phd student

    Informations forums :
    Inscription : Décembre 2015
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Bonjour;
    donc d'après ce que j'ai compris pour que ça marche je dois importer mes résultats vers une liste dynamiques ? c'est ça ?

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/10/2016, 20h17
  2. [1.x] Export des données d'un formulaire dans un fichier excel
    Par farhaenis dans le forum Symfony
    Réponses: 4
    Dernier message: 01/08/2011, 11h55
  3. Réponses: 5
    Dernier message: 12/12/2010, 14h20
  4. Réponses: 0
    Dernier message: 09/11/2010, 17h42
  5. Réponses: 3
    Dernier message: 02/07/2008, 10h44

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