我使用基于POI的Jxls库来生成电子表格,其中包含引用其他工作表的宏。当公式引用一个空变量,并且显示"#VALUE“而不只是一个空白时,我遇到了一个问题。
例如,“原始”工作表(称为worksheetA)可以使用Jxls变量正确填充。例如,我将其放入单元格A2中
${employee.salary}上面引用的是一个集合,因此如果有10个雇员,那么在生成的worksheetA中将出现10行。请注意,就模板而言,集合的大小是未知的,但如果需要,我可以使用生成电子表格的java类来检索它。
$[worksheetA!A2]正确计算了worksheeB的前10行。但是,剩下的10行显示"#VALUE",因为没有对应的员工(即只有10名员工)。
这是一种扭曲的解释,但基本上,一个引用Jxls集合填充的单元格以外的单元格的公式会返回"#VALUE“,我想去掉它。
发布于 2013-05-30 10:54:02
问题在于,${employee.salary}在电子表格上扩展为多行,具体取决于集合中的项数。Excel将其视为插入,因此以前指向前10行的任何公式现在都将指向第11行及以后的行。我希望它们保持指向1到10行(或1到n行),所以我的变通办法是将数据插入到公式未引用的工作表中,然后自动运行宏,该宏将这些工作表复制到宏所引用的工作表中,从而避免插入。
发布于 2013-05-18 03:10:40
您可以始终使用=IFERROR(a,b)修饰公式,其中a是原始公式(或值),b是您希望在a为#VALUE时显示的内容
https://stackoverflow.com/questions/16616249
复制相似问题