かえでBlog

色々なことを徒然と……

【POI】エクセル出力後関数が実行されない

   

JAVAのPOIにて文字やらなんやらを埋め込み、出力したものを表示してみると関数が実行できていませんでした。(#VALUE!等)

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

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

でもExcel2013形式の場合だと上記の方法をとらなくても出力できたような……気のせいでしょうか。

// ワークブックを読み込みます。                                                 
XSSFWorkbook wb = (XSSFWorkbook) WorkbookFactory.create(in);
//ブックの再計算を許可します。
wb.setForceFormulaRecalculation(true);
// シートを読み込みます。                                                    
XSSFSheet sheet = wb.getSheetAt(0);
//シートの再計算を許可します。
sheet.setForceFormulaRecalculation(true);

…以下処理

 

 - JAVA , , , ,