我正在尝试使用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 - 没有帮助。
你知道那可能是什么问题吗?
提前谢谢。
答案 0 :(得分:0)
根据Axel的评论,问题在于分隔符:
Range.formula 需要,
Range.formulalocal 需要;
我已经修复了我的源代码,现在它工作正常。