2

I am using JXL to write an Excel report. I need to use named areas for the report, and have formulas based off of them. However, when the Excel file loads, the values displayed are incorrect. If I click on the cell, and hit enter, the value changes and is correct. I can't figure out how to make the value appear correctly on load. Does anyone know a way to force Excel to re-evaluate, or to provide a default value for the Formula?

Below is a simplified version of my code:

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

4 回答 4

3

我也遇到了一些公式字段没有正确值的问题,并且在网上找不到解决方案。通过一些自我调查,我发现例如,如果您在单元格上有以下公式

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

由于使用了标签,以下内容不会在公式单元格中产生结果:

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);

Label 接受参数 String 而 Number 接受 Double,这可能是正确结果的原因。

于 2012-11-06T13:28:35.493 回答
0

可悲的是,看起来并没有真正解决这个问题。我认为这是JXL中的一个问题。我认为由于某种原因,直到计算公式之后才设置命名区域。

于 2011-06-26T00:50:02.857 回答
0

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

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

于 2011-06-23T20:35:08.893 回答
0

今天我也遇到了错误#VALUE。是这个公式:

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

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

我使用 Number 类将数字输入到该区域,但我发现如果该范围内只有一个空白区域(如果您没有为该范围内的所有内容赋值),稍后会在电子表格中显示该错误。

解决方案:

我将公式移到同一个 list1 中,移到单元格 AF9 中:

=COUNTIF(A9:AE9,>0) 

先计算它),然后只复制 AF9 的计算值到其他列表

='list1'!AF9

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

于 2013-11-27T09:52:17.123 回答