使用像SUM()AVG()STDEV()返回#VALUE的JXL公式时出现问题! 当它引用另一张表的值时

我想在工作表中填充一些值,然后使用jxl公式从该表中获取值并将其写入另一个工作表…

当我尝试运行这个示例代码

 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使用:jxl 1.0.jar ….

解决scheme尝试

1)而不是给它有一个公式我给它有标签

Label label = new Label(3,5,“AVERAGE(Output!D1:Output!D5)”);

我把单元格中的所有文字都写进了单元格中,并在单元格之前给出了'='。它像一个魅力一样工作。 但是我想用JXL API来完成

2)将JAR更改为jxl 2.6.jar

现在我得到#VALUE! 当我尝试运行相同的。 细胞内容是

= AVERAGE(输出!D1:输出!D5),但仍获得#VALUE !.

JAR使用:jxl 2.6.jar

只有当我进入该单元格并按Tab键或F2键时,这个错误才得到解决。

请提供一些解决scheme

问候

NSBalaji

看起来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)"); 

如果你把例如Z1 =“= Output!D1”,Z2 =“= Output!D2”,然后在你喜欢的单元格中尝试AVERAGE(z1:z5),你可以解决这个问题