使用像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),你可以解决这个问题