Bonjour,
Mon appli utilise la librairie Apache POI 3.10-FINAL et je rencontre un (énorme) problème à la lecture de nombres dans un fichier Excel puisque les nombres sont modifiés (!).
En effet, dans mon tableau j'ai la valeur 0.001306 mais le résultat de cell.getNumericCellValue() me renvoie 0.0013059999999999999 ! De la même façon, la valeur 2587441349.95676 se transforme en 2.5874413499567585E9.
J'ai essayé de convertir le type de la cellule avant de la lire :
1 2
| cell.setCellType(Cell.CELL_TYPE_STRING);
cell.getStringCellValue(); |
Mais si la valeur n'est pas modifiée, c'est le formatage qui l'est : 0.001306 devient 1.306E-3 or je ne peux pas retransformer le formatage car la seule règle est qu'il faut que ce soit stocké/affiché comme cela l'était dans le fichier excel (si l'utilisateur rentre des valeurs sous la forme 0.001306 parfois et d'autres 1.306E-3, il le peut)
J'ai également essayé
((XSSFCell) cell).getRawValue();
mais là... ce qui était précédemment -2.3600000000000001E-3 devient 131 (?!?!).
J'ai essayé de faire des modifications dans la feuille excel, en changeant le type des cellules (numérique avec x chiffres après la virgule, ou texte, ou...) mais ça ne change rien. Il n'y a que lorsque je rajoute une simple quote avant un nombre qu'il est vraiment lu comme une chaine de caractère (et donc pas modifié).
Je suis étonnée de ne pas trouver grand chose concernant ce problème dans google...? Personne n'a jamais rencontré ce souci ?
Partager