Apache POIライブラリでExcelファイルを読み込もうとすると、次のエラーが発生します。
java.lang。IllegalStateException:数値セルからテキスト値を取得できません 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)にあります。 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)
セル内の数値をテキスト値として読みたいのですが。私のExcelでの数値は9桁の数字です(のように:108010407)。
私はこのように単純にExcelを読みます:
Cell cell = row.getCell(columnNumber)
しかし、それは "108010407"の代わりに "1.08010407E8"として読み取られ、この値をIDとして使用します。問題を解決するためにどのようなアプローチをとるべきですか?
注:このようにセルタイプを変更しても助けにはなりません。
cell.setCellType(Cell.CELL_TYPE_STRING);
回答:
回答№1は1私のサンプルソース
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;
}