4

シートにいくつかの値を入力してから、jxl Formulaを使用してそのシートから値を取得し、別のシートに書き込みたいと思います...

このサンプルコードを実行しようとすると

  
String filename = "C:\\input.xls";
      WorkbookSettings ws = new WorkbookSettings();
      ws.setLocale(new Locale("en", "EN"));
      WritableWorkbook workbook = 
      Workbook.createWorkbook(new File(filename), ws);
      WritableSheet s = workbook.createSheet("Input", 0);
      WritableSheet s1 = workbook.createSheet("Output", 1);
      s1.addCell(new Number(3, 0, 5));
      s1.addCell(new Number(3, 1, 6));
      s1.addCell(new Number(3, 2, 1));
      s1.addCell(new Number(3, 3, 6));
      s1.addCell(new Number(3, 4, 1));
      Formula formula = new Formula(3,5,"AVERAGE(Output!D1:Output!D5)");
      s.addCell(formula);

 

AVGリストの最後の値を取得しています出力があります

= AVERAGE(出力!D5)

使用されるJAR:jxl1.0.jar...。

解決策を試しました:

1)与える代わりに、私が与えた式にはラベルが付いています

ラベルlabel=new Label(3,5、 "AVERAGE(Output!D1:Output!D5)");

セル内のテキスト全体を取得し、セルの前に「=」を付けました。それは魅力のように機能しました。しかし、私はこれをJXLAPIで実行したいと思っています

2)JARをjxl2.6.jarに変更しました

今、私は #VALUEを取得しています!私が同じことを実行しようとすると。セルの内容は

= AVERAGE(Output!D1:Output!D5)ですが、それでも#VALUE!を取得します。

使用されるJAR:jxl 2.6.jar

このエラーは、そのセルに移動してTabキーまたはF2キーを押した場合にのみ解決されます。

いくつかの解決策を提供してください

よろしく

NSBalaji

4

2 に答える 2

3

Excel が数式を奇妙な方法で評価しているように見えるため、なぜ#VALUE!. 数式が失敗する理由を確認するには、数式セルをクリックしてから に進みTools > Formula Auditing > Evaluate Formulaます。手順は次のとおりです。

AVERAGE(Output!D1:Output!D5)
=AVERAGE(5:Output!D5)
=AVERAGE(5:1)
=AVERAGE(#VALUE!)
=#VALUE!

しかしF2+Enter、セルで実行すると、Excel が実行計画を変更し、正しい答えが得られることがわかります。

これを修正するために考えられる唯一のことは、範囲の代わりにコンマ区切りのリストを使用することです。

Formula formula = new Formula(3,5, "AVERAGE(Output!D1,Output!D2,Output!D3,Output!D4,Output!D5)");
于 2010-12-20T15:13:52.757 に答える
0

この問題は、たとえば Z1 = "=Output!D1", Z2 = "=Output!D2"... と入力して、後でお気に入りのセルで AVERAGE(z1:z5) を試すと解決できます。

于 2016-07-14T11:10:48.543 に答える