我正在尝试通过 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 : Failed to parse: =SUMIF(D2:S2,"<>N/A"). Error: Unsupported function: SUMIF.For list of supported functions consult GemBox.Spreadsheet documentation.
我还尝试添加公式的瑞典语版本:
=SUMMA.OM(DX:SX;"<>N/A")
(在上面的例子中我用X改变了实际的行号)
这里我得到了异常:
System.ArgumentException : Failed to parse: =SUMMA.OM(D2:S2;"<>N/A"). Error: Not expected: SUMMA
最奇怪的是,如果我在 Excel 的单元格中手动输入瑞典公式,它就可以工作。
感谢我能得到的任何帮助,非常感谢。
最佳答案
实际上,我看不出有任何理由会引发该错误——您所做的似乎应该有效。本着提供另一种测试途径的精神,您还可以尝试公式的 R1C1 版本,看看是否可行:
foreach (var row in rows)
{
ws.Cells[row, 2].FormulaR1C1 = "=SUMIF(R[0]C[2]:R[0]C[17],\"<>N/A\")";
}
除非您的 rows
变量包含无效数字,否则我不确定它为什么会抛出该异常。在您给出的示例错误中,这应该没问题。
关于c# - 使用 C# 将 Sumif 公式添加到单元格错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51436980/