9

我想使用 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 值会改变。

使用的罐子

jxl-2.6.jar

实时而不是标签,该值将基于公式使用

IF(Some-cell-reference="","",some-Value)

然而; 当我尝试使用键 F2编辑单元格时,它会更改其执行计划并得到正确的输出。

有没有可用的解决方案......

预期的解决方案:

使单元格为空但更改单元格格式以便不返回#VALUE。

这篇文章与

参考其他工作表的 JXL #VALUE 问题

4

1 回答 1

1

好的,我看到的第一个问题是您添加的数字在“C”列而不是“D”列中。也许您已经在“D”中有数字,所以这不是问题,而是需要考虑的问题。

我认为最大的问题是 jxl 处理电子表格的方式,另一个提问者认为他们的命名范围不是在插入公式之前创建的,所以他们只有在他们“进入”单元格时才起作用,就像你一样. 因此,您的“输出”表可能没有初始化,因此输出没有有效的参考!参考。

由于您还在同一张表格中插入公式,因此转储表格引用并像这样编写您的行:

Formula formula = new Formula(3,5,"AVERAGE(D1:D5)");
于 2011-06-27T21:48:31.253 回答