我想使用AVERAGE函数,但是当我有一个恰好是标签的引用单元格时,我得到#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();
我无法将空单元格转换为0,因为AVG值会发生变化。
JAR USED
JXL-2.6.jar
实时而非Label,将根据公式使用该值
如果(某些-于小区的参考= “”, “”,一些 - 值)
然而;当我尝试使用键F2 编辑单元格时,它会更改其执行计划并获得正确的输出。
有没有可用的解决方案......
预期解决方案:
要使单元格为空,但更改单元格格式,以便不返回#VALUE。
这篇文章与
略有关系答案 0 :(得分:1)
好的,我看到的第一个问题是你加入的数字是在“C”列而不是“D”。也许你已经有了“D”中的数字,所以这不是问题,而是要考虑的事情。
我认为最大的问题是jxl处理电子表格的方式,这个other questioner认为他们的命名范围是在插入公式之前没有创建的,所以他们只有在他们“进入”时才能工作像你一样,细胞。因此可能是您的“输出”表未初始化,因此输出没有有效的参考!引用。
由于您还在相同的工作表中插入公式,然后转储工作表引用并写下您的行,如下所示:
Formula formula = new Formula(3,5,"AVERAGE(D1:D5)");