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

API standards et tierces Java Discussion :

[POI]: ne récupère pas le nombre dans ma colonne


Sujet :

API standards et tierces Java

  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut [POI]: ne récupère pas le nombre dans ma colonne
    Bonjour à tous,

    Je souhaite récupérer les nombres présent dans toutes les lignes de la 3ème colonne de mon extract.xls.

    Le souci, c'est que je ne récupère que des 0.0 dans mon affichage, quand je fais ceci (en rouge):
    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
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.text.ParseException;
    import java.util.Iterator;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.DateUtil;
    
    public class Extraction {
    
    	public static void main(String[] args) throws ParseException {
    		// Colonne du fichier
    		String chaine; //pour récupérer les Agents
    		long occurence; // pour récupérer les valeur des validations
    		int valid = 0; // pour compter le nombre de validation de chaque agent
    		int n_l_valid = 0; // pour récupérer la ligne de chaque validation
    		//int compteur = 0;
    
    		try {
    			POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("extract.xls"));
    			HSSFWorkbook wb = new HSSFWorkbook(fs);
    			HSSFSheet sheet = wb.getSheetAt(0);
    			HSSFRow row = null;
    			HSSFCell cell = null;
    			int n = 0;
    			// System.out.println("ligne N°| Valeur");
    			for (Iterator rowIt = sheet.rowIterator(); rowIt.hasNext();){
    				row = (HSSFRow) rowIt.next();
    				// n pour savoir le numéro de la ligne en cours 
    				n++;	
    				//System.out.println("n : "+ n);// pour avoir le numéro de chaque ligne lue
    				if(row.getCell(0) != null){//si les lignes de la colonne 1 ne sont pas null
    					if(row.getCell(0).getStringCellValue().startsWith("Agent")){// et si on apercoit "Agent"
    						chaine=row.getCell(0).getStringCellValue();
    						System.out.println(chaine); //on affiche la ligne de la colonne 1
    					}	
    				}								if(row.getCell(2) != null){// si les lignes de la colonne 3 ne sont pas null
    					System.out.println("Nombre: "+row);
    				}				
    			}
    			
    			//System.out.println("total: " + compteur);
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    }
    Pourquoi je n'obtiens pas mes valeurs 2, 3, 1 ?

    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Parce que ton fichier excel n'est pas formatté pour que les données saisies soient des nombres entiers. Il sont par défaut en standard.
    J'ai eu le même soucis, je n'ai eu d'autre choix que de "forcer" la conversion manuellement. Je les récupère sous forme de String puis les parse en Integer

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Non, il sont bien en nombre dans mon fichier !!
    Donc pas en standard.
    Il devrait au moins me les afficher bref.
    Bref, comment faire le forcing manuellement ?

    je fais ca maintenant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if(row.getCell(2) != null){// si les lignes de la colonne 3 ne sont pas null
    					if(row.getCell(2).CELL_TYPE_STRING==1){
    						if(row.getCell(2).getStringCellValue() != ""){
    							System.out.println("String: "+row.getCell(2).getStringCellValue());
    					if(row.getCell(2).CELL_TYPE_NUMERIC==0){
    							System.out.println("String: "+row.getCell(2).getNumericCellValue());
    					}
    				}
    				}
    Je me suis rendu compte que je n'ai plus d'affichage.
    ca veut dire qu'il l'analyse comme étant toutes vides.

  4. #4
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    J'ai trouvé:
    sheet.getRow(n_l_valid).getCell(4).
    pb résolu !

Discussions similaires

  1. [XL-2007] Recherche d'un nombre dans une colonne
    Par DNB91 dans le forum Excel
    Réponses: 1
    Dernier message: 10/06/2011, 18h08
  2. [MySQL] Query SQL > réduire un nombre dans une colonne de 20% ?
    Par lelandais1 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/03/2010, 11h41
  3. Réponses: 1
    Dernier message: 04/07/2008, 11h14
  4. Réponses: 6
    Dernier message: 13/12/2007, 14h27
  5. DBGrid : mon texte ne s'affiche pas en entier dans la colonne
    Par socooooool dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/07/2006, 17h38

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