Apache POI - obtenir le nombre entier
Tous les numéros de revenir de Apache POI valeurs de cellule Double.
Quand je fais getCell(...).toString()
, un nombre qui apparaît comme "123" dans Excel permet de convertir à la "123.0".
Comment puis-je savoir que le nombre devrait avoir affiché comme un nombre entier? Est-il de la magie j'ai besoin d'appliquer en Java de reproduire ce que fait Excel avec "Général" formatage?
Je serais vraiment reconnaissant si vous fournissez votre solution dans le code
OriginalL'auteur wrschneider | 2013-03-21
Vous devez vous connecter pour publier un commentaire.
Excel stocke presque tous les chiffres dans le format de fichier que les valeurs à virgule flottante, c'est pourquoi POI vous rendra un double numérique de la cellule que c'est ce qui était vraiment là
Je crois, si ce n'est pas tout à fait clair dans votre question, que ce que vous voulez faire est d'obtenir un objet de type String en Java qui contient le nombre qu'il regarde dans Excel? savoir appliquer les règles de mise en forme appliquée à la cellule et le nombre brut, et de vous redonner la chaîne formatée?
Si donc, vous voulez faire exactement la même chose comme dans ma réponse ici. Pour citer:
Modifier Et pour ceux d'entre vous qui, apparemment, trouver sur la Javadoc pour être un tout petit peu trop de travail..., vous devez utiliser le DataFormatter.formatCellValue(Cellulaire) méthode. Si l'itération, vous feriez quelque chose le long des lignes de:
Il vaut la peine de vérifier ce qu'chaîne de format Excel appliqué à la cellule (Excel affiche parfois une chose différente de ce qu'il écrit dans le fichier, en particulier dans les paramètres régionaux non anglais).
J'aurais été vraiment reconnaissante si vous aviez fourni un exemple.
OriginalL'auteur Gagravarr
Ce code vous donnera les réponses incorrectes pour les cellules de mise en forme sous forme de pourcentages, les symboles de devise, et de nombreux autres cas trop!
ce code est uniquement pour la lecture et l'Int de terrain avec Apache POI, à l'aide de getNumericCellValue() la méthode
Cet exemple est pour un Entier, mais plus généralement l'analyseur selon le type de données de la cellule, par exemple, un type de Chaîne peut utiliser des chaînes de caractères.valueOf et si vous utilisez la méthode getNumericCellValue pouvez utiliser Double d = ligne.getCell(cellIndex).getNumericCellValue(); Integer i = d.intValue();
OriginalL'auteur renelhs