0

我正在使用基于 POI 的 Jxls 库来生成包含引用其他工作表的宏的电子表格。当公式引用一个空变量并显示“#VALUE”而不是空白时,我遇到了问题。

例如,使用 Jxls 变量正确填充了“原始”工作表(称为 worksheetA)。例如,我把它放在工作表A,单元格A2

${employee.salary}

上面指的是一个集合,所以如果有 10 个员工,生成的工作表 A 中会出现 10 行。请注意,集合的大小在模板方面是未知的,但如果需要,我可以使用生成电子表格的 java 类来检索它。

在另一个工作表(称为工作表 B)中,我根据工作表 A 的内容填充单元格。

例如,在工作表 B 中,我将使用以下公式填充 A 列的 20 行:

$[worksheetA!A2]

正确计算工作表 B 的前 10 行。但是,剩余的 10 行显示“#VALUE”,因为没有相应的员工(即只有 10 名员工)。

这是一种扭曲的解释,但基本上一个公式引用的单元格超出了由 Jxls 集合填充的单元格返回“#VALUE”,我想摆脱它。

4

2 回答 2

0

您始终可以使用 =IFERROR(a,b) 修饰公式,其中 a 是原始公式(或值),如果 a 是 #VALUE,则 b 是您要显示的内容

于 2013-05-17T19:10:39.843 回答
0

问题是 ${employee.salary} 在电子表格上扩展为多行,具体取决于集合中的项目数。Excel 认为这是一个插入,因此以前指向前 10 行的任何公式现在都将指向第 11 行及以后的行。我希望它们始终指向 1 到 10 行(或 1-n 行),因此我的解决方法是将数据插入到公式引用的工作表中,然后自动运行复制这些工作表的宏到宏引用的那些,从而避免插入。

于 2013-05-30T02:54:01.723 回答