Interop.Excel本地化和Range.Formula与Formulalocal

我试图使用Interop.Excel生成Excel文件,但我有2个本地化,我需要运行我的WPF应用程序。

DE-DE和EN-US

对于de-DE本地化,我的程序工作正常(DE MS Office也安装在我的笔记本电脑上),但是当我尝试在en-US服务器上运行它时,我遇到了问题。

以下是源代码片段:

cell = "K" + rowCounter; Excel.Range ThisRange = xlWorkSheet.get_Range(cell, System.Type.Missing); string myFunction; if (Thread.CurrentThread.CurrentUICulture.IetfLanguageTag == "de-DE") { myFunction = "=+WENN(I" + rowCounter + "<=J" + rowCounter + ";J" + rowCounter + "-I" + rowCounter + ";\"24:00\"+(J" + rowCounter + "-I" + rowCounter + "))"; ThisRange.FormulaLocal = myFunction; } else { myFunction = "=+IF(I" + rowCounter + "<=J" + rowCounter + ";J" + rowCounter + "-I" + rowCounter + ";\"24:00\"+(J" + rowCounter + "-I" + rowCounter + "))"; ThisRange.Formula = myFunction; } 

我总是会遇到这样的例外:

例外:System.Runtime.InteropServices.COMException(0x800A03EC):来自HRESULT:0x800A03EC在Microsoft.Office.Interop.Excel System.RuntimeType.ForwardCallToInvokeMember(stringmemberName,BindingFlags标志,对象目标,Int32 [] aWrapperTypes,MessageData&msgData) .Range.set_Formula(对象值)

当不同的本地化被认可时,我也尝试将本地化改为去DE – 没有帮助。

你知道什么可能是错的?

先谢谢你。

根据Axel的评论,问题在于分隔符:

Range.formula要求
Range.formulalocal需要;

我已经解决了在我的源代码,现在它工作正常。