私のExcelシートでは多くのセルに数式が含まれていますが、Apache POIでExcelを読み取ったときにこれらの式を再計算する必要はありません。POI-XSSF:数式セルからの書式設定された値を読み取るキャッシュされた値
方法私はそれを行う:
if(cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA) {
//System.out.println("Formula is " + cell.getCellFormula());
switch(cell.getCachedFormulaResultType()) {
case XSSFCell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() +" ");
break;
case XSSFCell.CELL_TYPE_STRING:
System.out.print(cell.getRichStringCellValue()+" ");
break;
}
}
これは、細胞内の生の値を得ることに私を助けます。 たとえば、セルの値が19.5%の場合、これは私に0.195456を与えます。 私はフォーマットされた値を取得したい。フォーマットされた値を取得する
一つの方法は次のとおりです。
DataFormatter formatter = new DataFormatter();
System.out.print(formatter.formatCellValue(cell));
これは、通常の細胞に適していますが、数式を用いて細胞のために、これは実際に式の文字列を取得し、それを表示する、すなわち、それは取得していませんキャッシュされた値を取り除き、フォーマットします。むしろ数式文字列を返します。
CELL_TYPE_FORMULAからそれを取得した後、値をフォーマットする方法はあり
実際には、サードパーティ製のプラグインの式が使用されていますが、これはキャッシュされた値が正しくフォーマットされている必要があります – gaurav5430