KeisukeYamazaki
10/4/2019 - 4:44 PM

【POI】エクセル出力後関数を実行する

【POI】エクセル出力後関数を実行する

// ワークブックを読み込みます。                                                 
XSSFWorkbook wb = (XSSFWorkbook) WorkbookFactory.create(in);
//ブックの再計算を許可します。
wb.setForceFormulaRecalculation(true);
// シートを読み込みます。                                                    
XSSFSheet sheet = wb.getSheetAt(0);
//シートの再計算を許可します。
sheet.setForceFormulaRecalculation(true);
 
JAVAのPOIにて文字やらなんやらを埋め込み、出力したものを表示してみると関数が実行できていませんでした。(#VALUE!等)

関数が埋め込まれているセルをダブルクリック⇒エンターキーを押すと正しく表示できるのですが、表示の段階から処理を行うようにしたいので、
POIのドキュメントで確認してみるとSheet.setForceFormulaRecalculation(true)を使うことで再処理を行ってくれるみたいです。

また、複数シートでの関数計算をさせる場合、Workbook.setForceFormulaRecalculation(true)を使用するほうが楽だと思います。