我遇到了一个问题,我使用的公式非常具体。通过编程输入公式时,我得到了意想不到的结果。例如
MF = "IF(INDEX(CELL(\"width\",INDIRECT(ADDRESS(ROW(),COLUMN()))),1)<6,\"\",AGGREGATE(4,5,INDIRECT(ADDRESS(ROW()-"+readingsPerThirty+",COLUMN())):INDIRECT(ADDRESS(ROW()-1,COLUMN()))))";
Run Code Online (Sandbox Code Playgroud)
我将该 Excel 函数存储为字符串,稍后将被调用:
data.getRow(r+1).getCell(c,Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellFormula(readings.get(r).getC(c));
Run Code Online (Sandbox Code Playgroud)
其中数据是 XSSFSheet
当程序运行时,实际输入单元格的公式是:
=@IF(@INDEX(CELL("width",INDIRECT(ADDRESS(ROW(),COLUMN()))),1)<6,"",AGGREGATE(4,5,INDIRECT(ADDRESS(ROW()-1,COLUMN())):INDIRECT(ADDRESS(ROW()-1,COLUMN()))))
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于@ 符号来自何处或导致它们的原因的文档或报告。我的问题是它们为什么会出现,我可以做些什么来防止它出现。@ 导致 Excel 出现错误,公式在没有它们的情况下也能正常工作。
谢谢