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出现了。