我正在尝试通过C#将公式添加到Excel中多行中的单元格中。
我想通过该公式实现的目的是在每一行SUM
中N/A
包含所有不包含字符串column D to S
的所有单元格。
这是我要添加的公式:
=SUMIF(DX:SX,"<>N/A")
(在上面的示例中,我用X更改了实际的行号)
所以我要遍历行并执行以下操作:
foreach (var row in rows)
{
ws.Cells[row, 2].Formula = string.Format("=SUMIF(D{0}:S{0},\"<>N/A\")", row + 1);
}
在这里我得到了例外:
System.ArgumentException:无法解析:= SUMIF(D2:S2,“ <> N / A”)。错误: 不支持的功能:SUMIF。有关受支持功能的列表,请咨询 GemBox.Spreadsheet文档。
我还尝试添加公式的瑞典语版本:
=SUMMA.OM(DX:SX;"<>N/A")
(在上面的示例中,我用X更改了实际的行号)
在这里,我得到了例外:
System.ArgumentException:无法解析:= SUMMA.OM(D2:S2;“ <> N / A”)。错误: 意外:SUMMA
最奇怪的部分是,如果我在Excel的单元格中手动输入瑞典式公式,它将起作用。
感谢我能提供的任何帮助,非常感谢。
答案 0 :(得分:0)
我实际上看不到会引发该错误的任何原因-您所做的似乎应该可行。本着提供另一种测试途径的精神,您也可以尝试该公式的R1C1版本,看看是否可行:
foreach (var row in rows)
{
ws.Cells[row, 2].FormulaR1C1 = "=SUMIF(R[0]C[2]:R[0]C[17],\"<>N/A\")";
}
除非您的rows
变量包含无效数字,否则我不确定为什么会引发该异常。在您给出的示例错误中,应该没问题。