2011-01-31 22 views
9

私はAVERAGE関数を使いたいと思いますが、ラベルになるリファレンスセルを持っていると出力として#VALUEが得られます。JXL解決#VALUE問題

私は私がやろうとしています何のためのコードのサンプル片を添付しました:

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

AVG値が変更されますので、私は0に空のセルを変換することはできません。代わりに、ラベルのリアルタイムで

JXL-2.6.jar

使用

JAR(幾分場合、値は式

に基づいて使用されますセル参照= ""、 ""、ある値)

しかし、 キーF2でセルを編集しようとすると、実行計画が変更され、正しい出力が得られます。

このために利用可能なすべてのソリューションがあります....

予想される解決策:

が空のような細胞を作るが、それ#VALUEが返されないように、セルの書式を変更するには。

このポストを少し

JXL #VALUE problem with reference to other sheet

答えて

1

オクラホマに関連して、私が見る最初の問題は、あなたが追加している数字は、列「C」ではない「D」であるということです。たぶんあなたはすでに「D」の数字を持っているかもしれないので、それは問題ではありませんが、考慮すべきことです。

jxlがスプレッドシートを動作させる大きな問題だと思うのですが、other questionerは、式が挿入される前に名前付き範囲が作成されていないと考えていたため、セルに "あなたがしたように。したがって、あなたの "出力"シートが初期化されていない可能性がありますので、出力の有効な参照はありません!参照。

あなたはまた、シートの参照をダンプして、このようなあなたの行を記述し、その後、同じシートに数式を挿入しているので:

Formula formula = new Formula(3,5,"AVERAGE(D1:D5)"); 
関連する問題