2

シナリオ

Java 開発者の皆様、こんにちは。

ここにストレートな質問があります。Apache POI のループ内でセルの数式を設定するにはどうすればよいですか?

私の質問をサポートする情報は次のとおりです。

図 1 : セル C1 には、数式をSUM(C6:C7)ハードコーディングするだけで実行できる数式がありますmyCell.setCellFormula("SUM(C6:C7)")
一方で:

図 2 : これは私の希望する出力です。C1, D1, and E1たとえば、セルに数式を設定したいとします。ループ内でこれを行うにはどうすればよいですか?

なぜループ内でそれが必要なのですか?
- ハードコーディングは面倒です。3 つのセルは単なる例です。現在、数百のセルが数式を待っています。
- 行数は指定されていません。プログラムによって作成された行数に基づきます。

私がやった事?
- ググった。
- 類似の質問を検索しました。
- Apache POI の列は、整数 (行内のセルの数) で表されます。

この数式には Alpha C2 (列 C、行 2) が必要です。私はスプレッドシートをループしようとしましたが、続行すると、式がSUM(26:27)(ここで: 2 = 列 C、および行 6(ベース 1: 行数 + 1) になりたい) になることがわかりました。SUM(C6:C7)

4

2 に答える 2

5

私はついに問題を解決しました。
CellReference.convertNumToColString(myColumnNumber)列名を返します

于 2013-01-28T09:02:03.927 に答える
1

これまでに何を試しましたか (コード)?

次のようなことを試してください (ただし、列 Z を通過したときは、さらに考えなければなりません:

  int col=2;
  int row=6;
  char ccol = (char) (('A'+col)&0xff);
  String formula=String.format("SUM(%c%d:%c%d)", ccol, row, ccol, row+1);
于 2013-01-28T07:38:33.347 に答える