• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:POIで出力したExcelファイルで変更メッセージ)

POIで出力したExcelファイルで変更メッセージ

このQ&Aのポイント
  • POIを利用して出力したExcelファイルを開くと変更メッセージが表示される問題について
  • Excelファイルの読み込みと値のセット、保存を行うプログラムの実装方法について
  • 'sheet.setForceFormulaRecalculation(true);'の挙動による変更メッセージの解決方法

質問者が選んだベストアンサー

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

>sheet.setForceFormulaRecalculation(true); このメソッドを適用すると、ワークシートを開いたタイミングで関数が動作し、 ファイルの内容が変更されるということです。このため、変更メッセージが表示されます。 対応としては 1.我慢する 2.VBAで強制保存させる 3.VBAで閉じるときに強制破棄する 4.手動で保存(Ctrl+S)してから閉じる 5.自動計算させない 手持ちのExcelのバージョンが古く、オプション等で保存しないで閉じるが できるかどうかまではちょっとわかりません。

ete_01
質問者

お礼

ご回答ありがとうございます。 クライアント上での設定作業等は不可であるため 対応案として挙げて頂いた「2.VBAで強制保存させる」など Java以外の仕組みを併用した方法で解決策を練ってみます。 もう少し他の方の回答も待ってみようと思います。 ありがとうございました。

ete_01
質問者

補足

解決策を見つけましたので、補足として記述させて頂きます。 sheet.setForceFormulaRecalculation(true); ではなく、全て値を書き込んだ後に HSSFFormulaEvaluator.evaluateAllFormulaCells(inputWorkbook); を記述することで、引数に指定したブック上の全ての数式がその場で再計算されるようです。 英語がしっかりと読めれば、もっと早くたどり着けたのですが、、。 teketonさん、ご回答ありがとうございました。 この補足も含めて、ベストアンサーとさせて頂きます。

関連するQ&A