Lire en entier numérique de la cellule à l'aide d'Apache POI en java
J'ai une application qui lit xls feuille à l'aide d'apache poi. Lorsque la cellule contient une valeur numérique, je l'ai lu en ligne.getCell(i).getNumericValue(). Mais il renvoie à virgule flottante chiffres. comme si la valeur de la cellule est de 1, il retourne 1.0. Puis-je le convertir en int ? Tout helpwould être apprécié. J'ai essayé Entier.parseInt(valeur)- mais il jette NumberFormat exception.Toute aide est appréciée.Voici le pseudo-code:
FileInputStream file = new FileInputStream(new File("C:\\test.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while(rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while(cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch(cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
String value= String.valueOf(cell.getNumericCellValue());
int intVal = Integer.parseInt(value)-->>throws Exception
Il a obtenu, extraire la valeur, comme le double de conert à int :Double val = cellule.getNumericCellValue(); val.intValue donnera la réponse
Voici une solution simple:
Voici une solution simple:
double dval = row.getCell(cellCounter, XSSFRow.CREATE_NULL_AS_BLANK ).getNumericCellValue(); System.out.println(new Integer(new Double(dval).intValue()).toString());
OriginalL'auteur Parameswar | 2014-09-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez lire int valeur en tant que chaîne de apache poi à l'aide de simples étapes
D'abord compter les lignes dans les fiches ci-dessous à l'aide de la méthode
Puis utilisez code ci-dessous dans votre méthode
maintenant son travail , votre valeur de cellule générale a également son travail pas besoin de vérifier
OriginalL'auteur VISHWANATH N P
Nombres dans Excel sont (sauf pour quelques cas) stockées dans des nombres en virgule flottante. Les nombres à virgule flottante en Java, une fois formaté comme une chaîne de caractères, sont imprimées avec une virgule décimale de fin, comme vous allez le voir
En supposant que ce que vous voulais, c'était "donnez-moi une corde qui ressemble à ce qu'Excel affiche de cette cellule", puis ne pas appel de la cellule.toString(). Ce ne sera pas vous donner ce que vous voulez dans la plupart des cas
Au lieu de cela, vous devez utiliser le DataFormatter classe, qui fournit des méthodes qui lire le format Excel règles appliquées à une cellule, puis re-crée (du mieux qu'il le peut), ceux en Java
De votre code devrait être:
Vous pouvez remarquer que j'ai également corrigé un tas d'autres trucs....!
OriginalL'auteur Gagravarr
Quelqu'un pourrait trouver ce hack utile:
Rappelez-vous que vous modifiez le type de cellule ici, afin d'être sûr que cela ne cause aucun effet secondaire. Dans un single-threaded application, vous pouvez juste lire le type avant et de le restaurer après.
OriginalL'auteur Ilia Nedoluzhko
Vous pouvez simplement taper cast
float
àint
comme :OriginalL'auteur Sani Shrestha
OriginalL'auteur Mehdiway
Essayez de la manière suivante (pour une longue):
OriginalL'auteur Mohamed Maalej