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 :

[POI]Problème de lecture des cellules vides


Sujet :

Documents Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Points : 30
    Points
    30
    Par défaut [POI]Problème de lecture des cellules vides
    salut,

    moi j'utilise POI pour lire les fichiers excel, et tout marche un peu près comme je veux.

    Sauf que j'ai remarqué un petit bug venant de POI. En fait j'ignore si ce bug est dû à POI ou à mon code.

    Bref je vous expose la situation:

    1) J'ouvre un fichier excel et je lit ligne par ligne du sheet (feuille excel).
    2) Pour chaque ligne je lit chaque colonne

    Comme toutes les cellules ne sont pas remplies, je zappe la lecture de la cellule lorsque cell-ci est de vide. Pour cela j'utilise l'attribut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           if((cell!=null)&&(cell.getCellType()!=HSSFCell.CELL_TYPE_BLANK))
    Ca marche mais lorsque je m'approche des dernière lignes utilisées dans la sheet, POI ne reconnaît pas toujours les cellules vide comme étant de type BLANK, mais plutôt de type NULL.
    du coup je râte quelque cellules au passage.

    j'aimerais savoir si ce genre de bug est déjà arrivé à l'un d'entre vous.

    merci

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Points : 30
    Points
    30
    Par défaut
    j'ai constaté que le problème survenait seulement lorsque la cellule lue était situé à la colonne 0. Du coup j'ai trouvé une solution à mon problème, même si celle-ci est un peu bourin.

    j'ai écris une méthode qui permet de parcourir tout le sheet Excel est de mettre par défaut le CELL_TYPE_BLANK dans toutes les cellules vides de la première colonne.

    si lors du parcour je rencontre une cellule inexistant (à NULL), il suffit alors de créer une nouvelle cellule initialisée avec le type BLANK.

    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
    	public void resetCellType(HSSFSheet sheet){
     
    		HSSFRow row=null;	
    		HSSFCell cell=null;
     
    		boolean end=false;		
     
    		int numRow=0;
    		int numberRowMax=0;
    		int numberCellMax=0;
     
    		numRow=1;
    		row=sheet.getRow(numRow);
    		cell=row.getCell((short) 0);
     
    		/* get the total number of row used in the sheet */		
    		numberRowMax=sheet.getLastRowNum();
    		numberCellMax=row.getLastCellNum();
     
    		do{
    			row=sheet.getRow(numRow);
     
    			int i=0;
    			for(i=0; i<numberCellMax; i++){
     
    				cell=row.getCell((short) i);
     
    				if(i==0){					
    					if(cell != null){					
    						if(cell.getStringCellValue().equals("")){
    							cell.setCellType(HSSFCell.CELL_TYPE_BLANK);
    						}
    					}
    					else{
    						/* create a new cell initialized at BLANK TYPEat the number Row 0 */
    						row.createCell((short)0).setCellType(HSSFCell.CELL_TYPE_BLANK);
    					}
    				}
    			}
     
    			numRow++;			
     
    			/* exit condition */
    			if(numRow==numberRowMax){ end=true; }
     
    		}while(end!=true);	
    	}

    c'est un peu barbare mais efficace.
    au final je n'ai toujours pas compris pourquoi je rencontre des cellules NULL au sein des cellules utilisées.

    Pour information le fichier Excel dans lequel j'extrait les données ne contient que des chaînes de caractères.

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

Discussions similaires

  1. [POI] Problème de lecture d'une cellule de type date
    Par syrinEn dans le forum Documents
    Réponses: 2
    Dernier message: 29/06/2015, 12h10
  2. [POI] Problème de lecture des fichiers Word
    Par Dari dans le forum Documents
    Réponses: 9
    Dernier message: 05/07/2007, 14h08
  3. Problème de lecture des cellules dans une feuille Excel
    Par wangjun dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/10/2006, 09h35
  4. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 08h42
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

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