JXL命名的区域公式显示不正确的值

我正在使用JXL编写Excel报告。 我需要使用命名区域的报告,并有基于他们的公式。 但是,加载Excel文件时,显示的值不正确。 如果我点击单元格,然后按回车键,数值就会改变,并且是正确的。 我无法弄清楚如何使负载上的值正确显示。 有没有人知道一种方法来强制Excel重新评估,或为公式提供默认值?

以下是我的代码的简化版本:

excelWorkbook.addNameArea("NamedArea", excelSheet, column1, row1, column2, row2); Formula formula = new Formula(columnNumber, rowNumber, "COUNT(NamedArea)"); excelSheet.addCell(formula); 

我也有一些公式字段没有正确的值的问题,并没有find任何解决scheme在线。 通过一些自我调查,我发现如果你在单元格上有下面的公式

 Formula frmla = new Formula(col2, row0, "SUM(A1+A2)"); excelSheet.addCell(frmla); 

以下不会在公式单元格中产生结果,因为使用了Label:

 Label lbl1 = new Label(col0, row0, "5", wrtbleCellFrmt); Label lbl2 = new Label(col1, row0, "5", wrtbleCellFrmt); 

由于使用jxl.write.number,以下内容将产生正确的结果:

 jxl.write.Number number1 = new jxl.write.Number(col0, row0, 5, wrtbleCellFrmt); jxl.write.Number number2 = new jxl.write.Number(col0, row0, 5, wrtbleCellFrmt); 

标签需要一个参数string,而数字需要在一个双重,这可能是正确的结果的原因。

也许这有帮助。 寻找“setAutomaticFormulaCalculation”方法:

http://jexcelapi.sourceforge.net/resources/javadocs/2_6_10/docs/index.html

不幸的是,这看起来并没有真正解决这个问题。 我认为这是JXL的问题。 我认为,出于某种原因,命名区域不会被设置,直到评估公式。

今天错误#VALUE也来了。 这是这个公式:

 =COUNTIF('list1'!A9:'list1'!AE9,>0) 

当我按F2并进入该单元格时,它计算得很好,但在显示错误之前: “此公式中使用的值是错误的数据types”

我使用数字类input数字到该区域,但我发现,如果只有一个空的空间在该范围内(如果你不给所有在该范围内的价值)它会在电子表格中显示错误。

解:

我把公式转移到同一个list1,进入单元格AF9:

 =COUNTIF(A9:AE9,>0) 

先计算一下),然后将AF9的计算值复制到其他列表中

 ='list1'!AF9 

之后它就可以正常工作了,没有更多的#VALUE出现了。