/ / Exception d'état illégale lors de la tentative de lecture d'un fichier Excel - java, excel, analyse, apache-poi

Exception d'état illégal lors de la tentative de lecture d'un fichier Excel - Java, Excel, analyse, Apache-poi

J'essaie de lire un fichier Excel avec la bibliothèque Apache POI et d'obtenir l'erreur suivante:

java.lang.IllegalStateException: impossible d'obtenir une valeur de texte à partir d'une cellule numérique à org.apache.poi.xssf.usermodel.XSSFCell.typeMismatch (XSSFCell.java:845) à org.apache.poi.xssf.usermodel.XSSFCell.getRichStringCellValue (XSSFCell.java:294) à org.apache.poi.xssf.usermodel.XSSFCell.getStringCellValue (XSSFCell.java:246) à l'adresse com.ge.aviation.TeamDataProcessor.process (TeamDataProcessor.java:174) à com.ge.aviation.BatchCall $ 1.run (BatchCall.java:30) à java.util.TimerThread.mainLoop (Timer.java:555) à java.util.TimerThread.run (Timer.java:505)

Je veux lire la valeur numérique dans les cellules en tant que valeur de texte. Mes valeurs numériques dans Excel sont des chiffres à 9 chiffres (comme: 108010407).

Je lis tout simplement comme ceci:

Cell cell = row.getCell(columnNumber)

Mais il est lu comme "1.08010407E8" au lieu de "108010407" et j'utilise cette valeur comme identifiant. Pour résoudre mon problème, quelle approche dois-je adopter?

Remarque: cela ne m'aide pas lorsque je change le type de cellule comme ceci:

cell.setCellType(Cell.CELL_TYPE_STRING);

Réponses:

1 pour la réponse № 1

Ma source d'échantillon.

            switch(cell.getCellType()) {
case org.apache.poi.ss.usermodel.Cell.CELL_TYPE_STRING:
data = cell.getRichStringCellValue().toString();
break;
case org.apache.poi.ss.usermodel.Cell.CELL_TYPE_NUMERIC:
data = Integer.toString((int)cell.getNumericCellValue());
break;
}

lien javadoc: http://javafind.net/library/13/poi-3.10-FINAL/docs/apidocs/org/apache/poi/xssf/usermodel/XSSFCell.html#getCellType()