【问题标题】:CONCATENATE is not working in interop excel using c#CONCATENATE 在使用 c# 的互操作 excel 中不起作用
【发布时间】:2020-10-30 07:03:56
【问题描述】:

我正在使用公式 =CONCATENATE(A1,":",B1)-CONCATENATE(C1,":",D1) 以编程方式使用 C# 创建 excel 但我在以编程方式添加分号“:”时出错

帮我解决这个问题

错误:HRESULT:0X800A03EC

OSheet.Cells[1,1] = 10;
OSheet.Cells[1,2] = 30;
OSheet.Cells[1,3] = 5;
OSheet.Cells[1,4] = 25;
OSheet.Cells[1,5].Formula = "=CONCATENATE(A1,:,B1)-CONCATENATE(C1,:,D1)";
OSheet.Cells[1,5].NumberFormat = "hh:mm";

【问题讨论】:

    标签: c# excel interop


    【解决方案1】:

    您所说的在 Excel 中有效和您在 c# 代码中编写的内容不是一回事:

    C#: "=CONCATENATE(A1,:,B1)-CONCATENATE(C1,:,D1)"
    XL:  =CONCATENATE(A1,":",B1)-CONCATENATE(C1,":",D1)
    

    看到区别了吗?在您的 c# 中,您已将冒号周围的引号删除

    让你的 c# 像这样:

    OSheet.Cells[1,5].Formula = "=CONCATENATE(A1,\":\",B1)-CONCATENATE(C1,\":\",D1)";
    

    在引号前加一个斜杠告诉c#“这个引号是字符串的一部分,而不是结束字符串”

    【讨论】:

      【解决方案2】:

      试试这个:

      OSheet.Cells[1,5].Formula = "=CONCATENATE(TEXT(A1-C1,"00"),":",TEXT(B1-D1,"00"))";
      

      Text function doc

      【讨论】:

        猜你喜欢
        • 2017-02-11
        • 2015-05-04
        • 1970-01-01
        • 1970-01-01
        • 2015-04-04
        • 1970-01-01
        • 1970-01-01
        • 2010-12-27
        • 1970-01-01
        相关资源
        最近更新 更多