- - PR -
jakarta-POI でテンプレートに埋め込んだ計算式が反映されない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-08-12 16:06
jakarta-POIでExcelをダウンロードする処理を作成しています。
POIのバージョンは「3.1-FINAL」です。 ダウンロードにはテンプレートのExcelを用意し、 計算式を埋め込み、Javaから数値をセットしています。 例えば以下のような感じです。 テンプレート側:セル(A1)・・・=$B$1+$B$2 Java側:セル(B1)・・・cell.setCellValue(100) セル(B2)・・・cell.setCellValue(200) これでダウンロードするとセル(A1)には「300」と計算されるはずなのですが、 計算式が反映されません。 値にカーソルをあてて選択し直すとちゃんと再計算されます。 setCellValueにも数値でセットしていますし、 解決方法がわかりません。 どなたがご教示いただけないでしょうか。 よろしくお願いいたします。 |
|
投稿日時: 2008-08-12 17:07
POI-3.0.2でちょっと試してみたのですが、
cell.setCellFormula("$B$1+$B$2"); でうまくいくようです。 ちなみに私はJExcelApiを使っているので、そちらだと jxl.write.Formula cell = new jxl.write.Formula(cno, rno, "$B$1+$B$2"); をaddCellすれは大丈夫みたいです。 |
|
投稿日時: 2008-08-12 17:26
だっちょさん
ご回答ありがとうございます。 ただ、私が実装したかったのは Java側でcell.setCellFormulaするのではなく 元のテンプレートに計算式を埋め込みたかったのです。 POIのバージョンを3.1→2.5に落とすことによって 自動計算されるようになりましたので 原因はよくわかりませんが一旦解決しました。 |
|
投稿日時: 2008-08-22 10:19
POIの3.1-FINALだと自動計算しないので、
各シートで sheet.setForceFormulaRecalculation(true); してあげればOKです。 2.5 だと計算式内の文字が化けるので気を付けてください。 [ メッセージ編集済み 編集者: まっつ 編集日時 2008-08-22 10:20 ] |
1