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 :

Convertir xlsx en Hashmap


Sujet :

Documents Java

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2014
    Messages : 80
    Points : 64
    Points
    64
    Par défaut Convertir xlsx en Hashmap
    Salut à tous,

    Je viens vers vous pour avoir un avis sur mon souci.

    J’ai un fichier xlsx qui peut contenir plusieurs colonnes et je dois utiliser les données présentes dans ce fichier sachant que la première colonne représente une clé <integer>
    J’arrive à lire le fichier et à l’afficher en utilisant la librairie apache POI, maintenant pour pouvoir envoyer les données ver une autre application, j’aimerais pouvoir convertir les données du fichier xlsx en Hasmap tout en gardant la valeur présente dans la première colonne comme clé.

    J’ai effectué différentes recherches me permettant de conjuguer les fonctionnalités de POI et la création d’un hasmap sur une boucle….

    J’ai l’impression de tourner en rond.
    Si vous avez une idée ou une piste de recherche, je vous en remercie

  2. #2
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2014
    Messages : 80
    Points : 64
    Points
    64
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HashMap nomEtPasse = new HashMap<String, List<String>>();
    Cette solution me parait fonctionnelle mais j'ai du mal à visualiser la méthode me permettant d’insérer les données présentes dans la fichier xlsx dans le HasMap.

    Merci par avance pour votre aide

  3. #3
    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,

    Plutôt Map<Strng, List<String>> nomEtPasse = new HashMap<>();. Ensuite, tu n'as qu'a parcourir les lignes de ton sheet. A chaque ligne, tu créés une liste : List<String> list = new ArrayList<>();. Tu mets de côté la première colonne dans une variable, par exemple String id =, puis tu parcours le reste, en ajoutant chaque valeur dans la liste (par list.add( valeur de la cellule ). Quand tu as lu toute une ligne, tu fais nomEtPasse.put(id, list). Tout simplement.
    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.

  4. #4
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Vu de loin, ca ressemble à un probleme mal posé ou tu as du mal a visualiser comment faire parce que tu n'as pas une vue claire de ce que tu veux.

    Deja, il faudrait poster un extrait de 2-3 lignes pour qu'on comprenne de quoi tu parles. Tu dis que tu recuperes des données d'une ligne d'un fichier texte. Utiliser une HashMap<String, List<String>>() laisse penser qu'il peut y avoir plusieurs parametres par ligne (en plus de l'id). Que représentent ils ? Dans ton appli, comment savoir à quoi ils servent ? Leur ordre ? Si oui, tu as choisi la bonne structure. Sinon, il faut voir.

    Bref, il faudrait poster un extrait d'un fichier source et, idéalement, un exemple de résultat que tu voudrais obtenir à partir du source posté. Si tu fais ca, tu verras que tu trouveras peut etre meme les réponses toi meme

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2014
    Messages : 80
    Points : 64
    Points
    64
    Par défaut
    Salut
    Merci beaucoup joel.drigo et hwoarang pour vos retours.

    Effectivement je vais essayer d'être un peu plus explicite.
    Le client m'envoi un fichier xlsx composé de différentes informations:
    ID, nom, prénom, etc.. (que des String)

    Je cherche à transférer dans un HashMap en gardant l'id comme clé. Le but est de fournir les informations à d'autres services pour traitement.

    Pour le moment j'en suis là
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    public static void Hashmap() throws IOException{
     
    			File  Demande1 = new File ("C:/Users/fichier.xlsx");
    			FileInputStream  fis = new FileInputStream (Demande1 );
     
    			XSSFWorkbook book = new XSSFWorkbook(fis);
     
    			XSSFSheet sheet = book.getSheetAt(0);
     
    			XSSFRow row;
    			XSSFCell cell;
     
    			Iterator<Row> rows = sheet.rowIterator();
     
    			HashMap <String, List<String>>  Demande1 = new HashMap();
     
     
    			while (rows.hasNext()){
    				row=(XSSFRow) rows.next();
     
    				Iterator<Cell> cells = row.cellIterator();
     
    				while (cells.hasNext()){
     
    					if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING)
    					{
    						Demande1 .put(key, value)
    					}
    					else if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
    					{
    						Demande1 .put(key, value)
    					}
    				}
     
    			}
     
    		}
    Je vais travailler sur l'idée de joel.drigo, si vous avez d'autres idées, c'est avec plaisir.
    Merci beaucoup pour votre aide !!!

  6. #6
    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
    Au lieu d'une liste de String pour les propriétés, il peut être avantageux de faire une classe.
    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.

  7. #7
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2014
    Messages : 80
    Points : 64
    Points
    64
    Par défaut
    Merci beaucoup joel.drigo.

    Effectivement à l'origine j'avais créé un bean pour gérer la chose mais je me suis perdu dans la méthode d'implémentation.

    J'ai fini par trouver plus simple la lecture et la création du hasmap directement dans la méthode.

  8. #8
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Dans un cas comme ca, pour inserer ta donnée, il faut faire un truc de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    List<String> maList = maMap.get(key);
    if(maList == null)
    {
       maList = new List<>();
       maMap.put(key, maList);
    }
    maList.add(value);

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/06/2015, 14h35
  2. Réponses: 4
    Dernier message: 29/06/2011, 19h17
  3. Convertir un hashmap vers une matrice
    Par DionCeli dans le forum Collection et Stream
    Réponses: 23
    Dernier message: 14/01/2010, 15h53
  4. [XL-2007] Convertir xlsx en xls
    Par CosmosS dans le forum Excel
    Réponses: 4
    Dernier message: 05/10/2009, 11h04
  5. convertir 1 .xlsx en .xls
    Par tigdub1gal dans le forum Excel
    Réponses: 2
    Dernier message: 04/05/2007, 17h14

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