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

2023-12-05

我想在工作表中填充一些值,然后使用 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 列表中的最后一个值有输出

=平均值(输出!D5)

使用的 JAR:jxl 1.0.jar...

尝试过的解决方案:

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

标签标签=新标签 (3,5,"平均(输出!D1:输出!D5)");

我在单元格中获取了整个文本,并在单元格之前给出了“=”。它的作用就像一个魅力。但我希望使用 JXL API 来完成此操作

2)将JAR更改为jxl 2.6.jar

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

=AVERAGE(Output!D1:Output!D5) 但我仍然得到#VALUE!。

使用的 JAR:jxl 2.6.jar

仅当我转到该单元格并按 Tab 键或 F2 键时,此错误才能得到解决。

请提供一些解决方案

Regards

巴拉吉


看起来 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)");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐