/ エクセルファイルを読み込もうとしているときの/ Illegal State例外 - java、excel、解析、apache-poi

excelファイルを読み込もうとすると不正な状態の例外が発生する - java、excel、parsing、apache-poi

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;
}

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