[java] [POI] "0" sur les cellules vides
ouechTonton
Messages postés
13
Statut
Membre
-
ouechTonton Messages postés 13 Statut Membre -
ouechTonton Messages postés 13 Statut Membre -
Bonjour,
j'utilise POI 3.5 pour lire un fichier XLS (j'ai eu le même problème avec l'API JXL). Pour les colonnes où sont stockés des numériques, quand la cellule est vide, POI tient absolument à me refiler un int qui vaut 0. Impossible d'avoir un "" ou un null malgré diverses feintes pour reformater la cellule.
Franchement je me fiche pas mal si la cellule est un String, une date ou un numérique, je voudrais parser tout mon fichier en String et faire les traitements moi-même ! Je ne veux surtout pas de "switch case" sur les CellType. Car à ce moment le problème est déjà là : ma cellule vide est vue comme un 0.
Comment faire ?
j'utilise POI 3.5 pour lire un fichier XLS (j'ai eu le même problème avec l'API JXL). Pour les colonnes où sont stockés des numériques, quand la cellule est vide, POI tient absolument à me refiler un int qui vaut 0. Impossible d'avoir un "" ou un null malgré diverses feintes pour reformater la cellule.
Franchement je me fiche pas mal si la cellule est un String, une date ou un numérique, je voudrais parser tout mon fichier en String et faire les traitements moi-même ! Je ne veux surtout pas de "switch case" sur les CellType. Car à ce moment le problème est déjà là : ma cellule vide est vue comme un 0.
Comment faire ?
A voir également:
- [java] [POI] "0" sur les cellules vides
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
4 réponses
Salut,
Il faudrait "try/catcher"
Il faudrait "try/catcher"
............
...................
}
catch(NumberFormatException nfe)
{
et c'est ici que tu reformates la cellule en ""
}
Mais c'est que je n'aurai pas de NumberFormatException : que la cellule soit vide ou non, elle est de type CELL_TYPE_NUMERIC
Ok,
Et ce n'est pas normal qu'on obtienne 0 quand un int "ne contient rien" (ce qui est impossible)?
Les valeurs d'un int ne pouvant être autre chose que:
-2147483648 à +2147483647 dont 0 donc.
Si l'int retourné = 0 donc si la cellule est vide, forcer le String à "" ou à null
Cordialement,
Dan
Et ce n'est pas normal qu'on obtienne 0 quand un int "ne contient rien" (ce qui est impossible)?
Les valeurs d'un int ne pouvant être autre chose que:
-2147483648 à +2147483647 dont 0 donc.
Si l'int retourné = 0 donc si la cellule est vide, forcer le String à "" ou à null
int cell = 0;
String st = "";
if(cell != 0)
st = Integer.toString(cell);
System.out.println("st: " + "\"" + st + "\"");
Cordialement,
Dan
Oui damino,
mais le problème, c'est si l'utilisateur a réellement entré "0" dans la cellule. Impossible de voir la différence avec une cellule vide.
J'ai l'impression que le problème vient du fichier excel que je dois traiter en particulier. Quand je crée mon propre fichier excel, les cellules vides sont bien vues vides et pas comme des numériques.
Je ne vois pas ce qu'il peut avoir de particulier mon fichier...
mais le problème, c'est si l'utilisateur a réellement entré "0" dans la cellule. Impossible de voir la différence avec une cellule vide.
J'ai l'impression que le problème vient du fichier excel que je dois traiter en particulier. Quand je crée mon propre fichier excel, les cellules vides sont bien vues vides et pas comme des numériques.
Je ne vois pas ce qu'il peut avoir de particulier mon fichier...