ExcelCom 将公式写入单元格会导致#name?
ExcelCom writing formula into cell results in #name?
在我的项目中,我必须将公式填充到 ExcelSheet 的单元格中。为此,我使用 Microsoft.Office.Interop.Excel
库。
代码本身非常简单
mySheet.Cells[1, 1] = SomeString;
mySheet.Cells[1, 2].Formula = "=SUMME($E:E" + SomeInteger + ")";
就这样了。
(因为我住在德国,所以我的 excel 版本将 "Summe" 理解为 "SUM"
现在查看 excel sheet,结果是 #name?。
当单击单元格并强制更新时,它计算得很好。
I found a few posts related to this, but the link they provided with
the solution does not exist anymore. (And are about 10 years old)
我尝试了以下步骤:
呼叫
mySheet.Calculate()
设置公式后。 (没用)
正在更改功能。其他一些功能(更简单的功能)工作正常。但不是我的...
我很高兴收到你们的来信 - 更有经验的 - 伙计们...
谢谢!
详情:
Excel版本:2016
Windows10
PS:这是我的第一个问题。所以如果你有一些关于这方面的建议,我也很高兴!
我不在我的开发计算机上验证这一点,但是我认为如果你将第二行更改为 ...
mySheet.Cells[1, 2].Value2 = "=SUMME($E:E" + SomeInteger + ")";
你可能会得到你想要的结果。
我有同样的问题,但公式是西班牙语。
我的解决方案分为两部分:
1) 在初始化之前将文化更改为英语 Excel 互操作:
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
_AppExcell = new Microsoft.Office.Interop.Excel.Application();
2) 用英文写公式:
mySheet.Cells[1, 2].Formula = "=SUM($E:E" + SomeInteger + ")";
不必将您的公式转换为英文版本并添加 CultureInfo,您可以简单地使用“FormulaLocal”而不是“Formula”。它就像一个魅力。
所以不用
mySheet.Cells[1, 2].Formula = "=SUMME($E:E" + SomeInteger + ")"; //#NAME
你会用
mySheet.Cells[1, 2].FormulaLocal = "=SUMME($E:E" + SomeInteger + ")";
在我的项目中,我必须将公式填充到 ExcelSheet 的单元格中。为此,我使用 Microsoft.Office.Interop.Excel
库。
代码本身非常简单
mySheet.Cells[1, 1] = SomeString;
mySheet.Cells[1, 2].Formula = "=SUMME($E:E" + SomeInteger + ")";
就这样了。 (因为我住在德国,所以我的 excel 版本将 "Summe" 理解为 "SUM"
现在查看 excel sheet,结果是 #name?。 当单击单元格并强制更新时,它计算得很好。
I found a few posts related to this, but the link they provided with the solution does not exist anymore. (And are about 10 years old)
我尝试了以下步骤:
呼叫
mySheet.Calculate() 设置公式后。 (没用)
正在更改功能。其他一些功能(更简单的功能)工作正常。但不是我的...
我很高兴收到你们的来信 - 更有经验的 - 伙计们...
谢谢!
详情: Excel版本:2016 Windows10
PS:这是我的第一个问题。所以如果你有一些关于这方面的建议,我也很高兴!
我不在我的开发计算机上验证这一点,但是我认为如果你将第二行更改为 ...
mySheet.Cells[1, 2].Value2 = "=SUMME($E:E" + SomeInteger + ")";
你可能会得到你想要的结果。
我有同样的问题,但公式是西班牙语。
我的解决方案分为两部分:
1) 在初始化之前将文化更改为英语 Excel 互操作:
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
_AppExcell = new Microsoft.Office.Interop.Excel.Application();
2) 用英文写公式:
mySheet.Cells[1, 2].Formula = "=SUM($E:E" + SomeInteger + ")";
不必将您的公式转换为英文版本并添加 CultureInfo,您可以简单地使用“FormulaLocal”而不是“Formula”。它就像一个魅力。
所以不用
mySheet.Cells[1, 2].Formula = "=SUMME($E:E" + SomeInteger + ")"; //#NAME
你会用
mySheet.Cells[1, 2].FormulaLocal = "=SUMME($E:E" + SomeInteger + ")";