3

Excel スプレッドシートで jxls forEach ループを使用して作成された行がいくつかあります。これらの各行には、forEach で動的に作成される一連の列があります。したがって、本質的に 1 つのセルは、いくつかのセルが外側に、いくつかのセルが下にある範囲になります。セルの生成された各列の下部に、列を合計する合計式が必要です。多くのセルになるセルに SUM(C3) を入力すると、SUM(C3:E3:C5:E5) などのエラーが表示されます。

公式ページ: http://jxls.sourceforge.net/reference/formulas.htmlによると、jxls は、セルが下向きの範囲と横向きの範囲になったときに合計を調整するのに十分賢いですが、両方ではありません。

また、フォーラムをセルに固定し、合計を生成するだけでなく、上のセルを編集すると下の合計が更新されるようにしたいことにも言及する必要があります。

誰かがこの問題について私を助けてくれますか?

これが私が話していることの例です。 テキストの一部を変更したため、間違いがあることは承知していますが、理解していただければ幸いです。

また、r1c1 参照を使用しても機能しませんでした。エクスポートすると、A1 の既定の参照が Excel で設定され、これを使用するすべてのユーザーに対してそのように設定されるためです。r1c1 セル参照を使用するようにスタートアップ マクロを設定しようとしましたが、役に立ちませんでした。

次の式を使用して解決しました: =SUM(D13:INDIRECT("R[-1]C",0)) indirect() を使用して最初と最後のセルをアドレス指定できます

4

2 に答える 2

0

あなたが解決策を求めているものを明確にするために、私が正しく理解していれば、c3:e3 と (同じ式で) c5:e5 の範囲を追加する式を探していましたか? もしそうなら、試してください:

=合計(c3:e3)+合計(c5:e5)

これはあなたが試みていたことですか?

于 2012-09-13T03:02:54.617 に答える
0

私はこのようにしました:

最初に、org.apache.poi.ss.util.CellReference オブジェクトをトランスフォーマー Bean に追加します。

Map<String, Object> beans = new HashMap<>();
...
beans.put("cellRef", new CellReference(0,0));
...
Workbook wb = transformer.transformXLS(xlsInputStream, beans);

次に、xls テンプレートで次の式を使用します。

${hssfCell.setCellFormula("SUM(" + cellRef.convertNumToColString(hssfCell.columnIndex) + "2:" + cellRef.convertNumToColString(hssfCell.columnIndex) + hssfCell.rowIndex + ")")}
于 2015-03-02T10:59:37.137 に答える