JXL解决#VALUE问题

时间:2011-01-31 16:42:40

标签: java excel worksheet-function jxl

我想使用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。

这篇文章与

略有关系

JXL #VALUE problem with reference to other sheet

1 个答案:

答案 0 :(得分:1)

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

我认为最大的问题是jxl处理电子表格的方式,这个other questioner认为他们的命名范围是在插入公式之前没有创建的,所以他们只有在他们“进入”时才能工作像你一样,细胞。因此可能是您的“输出”表未初始化,因此输出没有有效的参考!引用。

由于您还在相同的工作表中插入公式,然后转储工作表引用并写下您的行,如下所示:

Formula formula = new Formula(3,5,"AVERAGE(D1:D5)");
相关问题