2011-06-23 5 views
2

Excelレポートを作成するのにJXLを使用しています。私は、レポートに名前付きの領域を使用し、それらに基づいて数式を作成する必要があります。ただし、Excelファイルが読み込まれると、表示される値が正しくありません。セルをクリックしてEnterキーを押すと、値が変更され、正しいことになります。私はロード時に値を正しく表示させる方法を理解できません。誰かがExcelの再評価を強制する方法や、式の既定値を提供する方法を知っていますか?以下はJXL名前付きエリアの数式が正しくない値を表示する

私のコードの簡易版である:

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

jxlは何か分かりませんが、Excel/VbaではexcelSheet.Calculateを使用します –

+0

ありがとうございます。残念ながら、私はJXLを使用する必要があります。 –

答えて

0

多分これは役立ちます。本当にこのための修正がないよう

悲しいことhttp://jexcelapi.sourceforge.net/resources/javadocs/2_6_10/docs/index.html

+0

運がない。私はメソッドsetAutomaticFormulaCalculationとsetRecalculateFormulasBeforeSaveの可能な組み合わせを試しました。これは単なるJXLの問題だと思っています。 –

+0

チップをありがとう。私はそれらの方法が問題を解決するべきであると推測しています。しかし、どこかに問題があると思う。私はそれが面積の命名計算の計算のタイミングと関係しなければならないかどうか疑問に思います。 –

+0

あなたは大歓迎です! –

0

は、それが探している:「setAutomaticFormulaCalculation」方法を探してください。私はそれがJXLの問題だと思う。私は何らかの理由で、式が評価されるまで名前付きエリアが設定されていないと考えます。

3

また、正しい値を持たないいくつかの数式フィールドで問題が発生していて、オンラインで解決策が見つからなかった。

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

:いくつかの自己調査で、私は、例えば、あなたがセルに次の数式を使用している場合

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

は、以下が原因ラベルの使用の数式セルに結果を生成しないであろうことがわかりました数は、おそらく目でダブルにとりながら

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

ラベルは、パラメータ文字列を取ります。以下は理由jxl.write.numberの使用の正しい結果を生成します正しい結果が得られます。

0

エラー#VALUEも今日私のところに来ました。

「この式で使用される値が間違ったデータ型である」 :私はF2を押すと、そのセルに入力すると

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

それはうまくそれを計算しますが、それは誤りであった前に:この式でした

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

対処:

Iは細胞AF9に、その同じLIST1に数式を移動:それを最初に計算する

=COUNTIF(A9:AE9,>0) 

)を、次いで

他のリストにAF9のみ計算された値をコピー
='list1'!AF9 

それ以降は正常に機能し、#VALUEが表示されなくなりました。

関連する問題