2

JXL を使用して Excel レポートを作成しています。レポートに名前付き領域を使用し、それらに基づく式を作成する必要があります。ただし、Excel ファイルをロードすると、表示される値が正しくありません。セルをクリックして Enter キーを押すと、値が変更され、正しい値になります。ロード時に値を正しく表示する方法がわかりません。Excelに再評価を強制する方法、または式のデフォルト値を提供する方法を知っている人はいますか?

以下は私のコードの簡略版です:

excelWorkbook.addNameArea("NamedArea", excelSheet, column1, row1, column2, row2);
Formula formula = new Formula(columnNumber, rowNumber, "COUNT(NamedArea)");
excelSheet.addCell(formula);
4

4 に答える 4

3

また、一部の数式フィールドに正しい値がないという問題があり、オンラインで解決策が見つかりませんでした。いくつかの自己調査で、たとえば、セルに次の数式がある場合、

Formula frmla = new Formula(col2, row0, "SUM(A1+A2)");
excelSheet.addCell(frmla);

次の場合、ラベルを使用しているため、数式セルに結果が表示されません。

Label lbl1 = new Label(col0, row0, "5", wrtbleCellFrmt);
Label lbl2 = new Label(col1, row0, "5", wrtbleCellFrmt);

jxl.write.numberを使用しているため、以下は正しい結果を生成します。

jxl.write.Number number1 = new jxl.write.Number(col0, row0, 5, wrtbleCellFrmt);
jxl.write.Number number2 = new jxl.write.Number(col0, row0, 5, wrtbleCellFrmt);

LabelはパラメータStringを取り、NumberはDoubleを取ります。これが、おそらく正しい結果の原因です。

于 2012-11-06T13:28:35.493 に答える
0

残念ながら、これに対する修正はないようです。JXLの問題だと思います。何らかの理由で、数式が評価されるまで名前付き領域が設定されていないと思います。

于 2011-06-26T00:50:02.857 に答える
0

たぶんこれが役立ちます。「setAutomaticFormulaCalculation」メソッドを探します。

http://jexcelapi.sourceforge.net/resources/javadocs/2_6_10/docs/index.html

于 2011-06-23T20:35:08.893 に答える
0

今日も #VALUE というエラーが出ました。次の式でした。

=COUNTIF('list1'!A9:'list1'!AE9,>0)

F2を押してそのセルに入力すると、うまく計算されましたが、エラーが表示される前に:「この数式で使用されている値は間違ったデータ型です」

Number クラスを使用してその領域に数値を入力しましたが、その範囲に空のスペースが 1 つしかない場合 (範囲内のすべてに値を指定しない場合)、後でスプレッドシートにそのエラーが表示されることがわかりました。

解決:

数式を同じ list1 のセル AF9 に移動しました。

=COUNTIF(A9:AE9,>0) 

最初に計算する)、AF9の計算値のみを他のリストにコピーしました

='list1'!AF9

その後は問題なく動作し、#VALUE は表示されなくなりました。

于 2013-11-27T09:52:17.123 に答える