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

时间:2015-09-23 21:37:06

标签: c# excel excel-formula excel-interop formulas

我正在尝试使用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的System.RuntimeType.ForwardCallToInvokeMember(String memberName,BindingFlags标志,Object target,Int32 [] aWrapperTypes,MessageData&amp; msgData) .Interop.Excel.Range.set_Formula(Object value)

当识别出不同的本地化时,我也尝试将本地化改为de-DE - 没有帮助。

你知道那可能是什么问题吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

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

Range.formula 需要
Range.formulalocal 需要;

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

相关问题