xls または xlsx シートを読み取る必要があります。正常にシートを読みましたが、文字列ではなく 10 進数値を返します (例: 3 の場合 - 3.0 を返します)。セルの値をそのまま読み取る必要があります。だから私は文字列として返す必要があります
質問する
3480 次
3 に答える
2
POI は、Excel がファイルに保存した正確な値を示しています。一般に、Excel セルに数値を書き込むと、Excel はそれをフォーマット付きの数値として保存します。POI は、必要に応じてその書式設定を行うためのサポートを提供します (ほとんどの人はそうではありません - 数値を数値として使用できるようにしたいのです)。
探しているクラスはDataFormatterです。あなたのコードは次のようになります
DataFormatter fmt = new DataFormatter();
for (Row r : sheet) {
for (Cell c : r) {
CellReference cr = new CellRefence(c);
System.out.println("Cell " + cr.formatAsString() + " is " +
fmt.formatCellValue(c) );
}
}
于 2012-09-21T09:09:49.143 に答える
0
//use this method for getting values from excel.It might help u.
private String getCellValue(Cell cell) {
if (cell == null) {
return null;
}
if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
return cell.getStringCellValue();
} else if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
return cell.getNumericCellValue() + "";
} else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
return cell.getBooleanCellValue() + "";
}else if(cell.getCellType() == Cell.CELL_TYPE_BLANK){
return cell.getStringCellValue();
}else if(cell.getCellType() == Cell.CELL_TYPE_ERROR){
return cell.getErrorCellValue() + "";
}
else {
return null;
}
}
于 2012-09-21T11:42:25.563 に答える
0
次のコードのようなスイッチとケースを使用します。
switch (cell.getCellType()) {
case STRING:
String c = cell.getStringCellValue();
break;
case NUMERIC:
int n = (int) cell.getNumericCellValue();
break;
case BOOLEAN:
boolean b = cell.getBooleanCellValue();
break;
default :
}
于 2019-03-30T14:57:16.483 に答える