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需要;
我已经解决了在我的源代码,现在它工作正常。