交互操作.Excel定位和范围.公式vs公式本地

本文关键字:vs 公式 范围 互操作 Excel 定位 交互 | 更新日期: 2023-09-27 18:14:21

我试图使用互操作生成excel文件。Excel,但我有两个本地化,我需要运行我的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;
   }

我总是得到这样的异常:

Exception: System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC at System.RuntimeType. comForwardCallToInvokeMember(String memberName, BindingFlags, Object target, Int32[] aWrapperTypes, MessageData&Microsoft.Office.Interop.Excel.Range. msgData)。set_Formula(对象值)

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

你知道哪里出了问题吗?

提前感谢。

交互操作.Excel定位和范围.公式vs公式本地

根据Axel的注释,问题出在分隔符:

范围。公式要求
范围。formulallocal 要求;

我已经在我的源代码中修复了这个问题,现在它工作得很好