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

Collection et Stream Java Discussion :

Tableau String dans un ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    INGENIEUR DE RECHERCHE
    Inscrit en
    Février 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : INGENIEUR DE RECHERCHE

    Informations forums :
    Inscription : Février 2003
    Messages : 74
    Par défaut Tableau String dans un ArrayList
    Bonjour,

    Je range un tableau de String dans un ArrayList. C'est pour récupérer le contenu d'un fichier excel, je connais le nombre de colonnes mais pas le nombre de lignes.

    Le problème est que je n'arrive pas à récupérer le contenu des tableaux. L'arrayList contient bien le nombre de lignes et chaque tableau string le nombre de colonnes, mais tout est vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
              String[] ligne = new String[12];
              for(int i=0; i < contSheet.size();i++){
                   ligne = (String[]) contSheet.elementAt(i);
                   for(int j = 0;j < ligne.length;j++){
                       System.out.println(i+" "+j+" "+ligne[j]);
                   }
              }
    Une petite idée?

    Merci

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Fait-nous un mini-programme en un source java qui compile où tu remplis puis affiche ton tableau, sans forcément que sa source soit du excel, et on pourra mieux t'aider je pense.

  3. #3
    Membre confirmé
    Profil pro
    INGENIEUR DE RECHERCHE
    Inscrit en
    Février 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : INGENIEUR DE RECHERCHE

    Informations forums :
    Inscription : Février 2003
    Messages : 74
    Par défaut
    Le main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    public class Main {
     
     
        public static void main(String[] args) {
     
              Importxls ixls = new Importxls("2008-2009.xls");
              ixls.rempliTable();
     
        }
     
    }

    La classe d'import
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import jxl.*;
    import jxl.read.biff.BiffException;
     
    public class Importxls {
     
        private Workbook workbook;
     
        public Importxls(String fic){
            try {
                //récupération du fichier xls
                 workbook = Workbook.getWorkbook(new File(fic));
     
            } catch (IOException ex) {
                Logger.getLogger(Importxls.class.getName()).log(Level.SEVERE, null, ex);
            } catch (BiffException ex) {
                Logger.getLogger(Importxls.class.getName()).log(Level.SEVERE, null, ex);
            }
     
     
        }
     
        public void rempliTable(){
     
            int i = 2;//les données commencent à la ligne 3
            int j = 0;//... et à la première colonne
            int nbeCol = 12; //il y a 12 colonnes
            boolean finListe = true;
            String[] ligne = new String[nbeCol];
            ArrayList contSheet = new ArrayList(300);
     
     
            //on se branche sur la première feuille
            Sheet sheet = workbook.getSheet(0);
     
            //boucle de lecture des données
            while(finListe){
                //parcours des lignes
     
                while(j <= nbeCol-1){
                    //parcours des colonnes
     
                    //on récupère le contenu de la cellule moins les espaces avant et après
                    ligne[j] = sheet.getCell(j,i).getContents().trim();
     
                    //si le nom est vide alors c'est la fin de la liste
                    //on passe à faux pour quitter la boucle
                    if(ligne[0].isEmpty()){
                        finListe = false;
                    }
                    //colonne suivante
                    j++;
     
                }
     
                if(finListe){
    //                System.out.println(ligne[2]);
                    contSheet.add(ligne);
                    i++;//ligne suivante
                    j = 0;//retour à la colonne 1
                }
     
            }
     
            //fermeture du process et libération de la mémoire
            workbook.close();
     
              //test de récupération
              String[] ligne1 = new String[12];
              for(int k=0; k < contSheet.size();k++){
                   ligne1 = (String[]) contSheet.get(k);
                   for(int l = 0;l < ligne1.length;l++){
                       System.out.println(k+" "+l+" "+ligne1[l]);
                   }
              }
     
        }
     
    }

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Ici je vois pas ; j'ai l'impression que tu remplis bien ton ArrayList, mais rien ne me dis que tu utilises bien le paquetage de lecture de l'excel.

    Désolé.

  5. #5
    Membre confirmé
    Profil pro
    INGENIEUR DE RECHERCHE
    Inscrit en
    Février 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : INGENIEUR DE RECHERCHE

    Informations forums :
    Inscription : Février 2003
    Messages : 74
    Par défaut
    Après moultes recherches j'ai trouvé .
    Je vous livre la soluce :

    Je suis passé de çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList contSheet = new ArrayList(300);
    à çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<String[]> contSheet = new ArrayList<String[]>(300);
    Mais surtout de çà :
    à çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contSheet.add(ligne.clone());
    Et çà change tout.

    Il est heureux le gars mais alors là vraiment

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/10/2009, 10h44
  2. copier un tableau string dans une arraylist
    Par ouadie99 dans le forum C#
    Réponses: 2
    Dernier message: 18/03/2008, 12h50
  3. Un string dans un tableau de deux dimensions...
    Par FinalSpirit dans le forum C++
    Réponses: 5
    Dernier message: 15/01/2006, 14h29
  4. Ranger un tableau de String dans ma HashMap
    Par jeyce dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 26/08/2004, 22h41
  5. problème our passer des string dans tableau d'int
    Par Battosaiii dans le forum C++
    Réponses: 9
    Dernier message: 15/07/2004, 17h42

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