C# epplus Excel持续时间公式在C中不起作用#

C# epplus Excel持续时间公式在C中不起作用#,c#,excel-formula,epplus,duration,C#,Excel Formula,Epplus,Duration,我在C# 此公式在Excel中有效,但在此代码中无效 最后,结果变量的值变为{#NAME?}。 但是它在Excel中的值是.803,正如注释中所建议的那样,epplus的当前版本不支持MDURATION功能 但是,您可以使用另一个NuGet包:如下所示: using Excel.FinancialFunctions; //... //var formula = "MDURATION(43860.3507195718,44233,0.2,0.199014876362008,2,3)"; Da

我在
C#

此公式在Excel中有效,但在此代码中无效 最后,结果变量的值变为
{#NAME?}

但是它在Excel中的值是
.803
,正如注释中所建议的那样,
epplus
的当前版本不支持
MDURATION
功能

但是,您可以使用另一个
NuGet包
:如下所示:

using Excel.FinancialFunctions;

//...

//var formula = "MDURATION(43860.3507195718,44233,0.2,0.199014876362008,2,3)";

DateTime start = new DateTime(1900, 01, 01);
double modifiedDuration = Financial.MDuration(
    start.AddDays(43860.3507195718), 
    start.AddDays(44233), 
    0.2, 
    0.199014876362008,
    (Frequency)2, 
    (DayCountBasis)3);

workSheet.Cells["Z8"].Value = modifiedDuration;

有一个关于如何附加记录器以查看公式哪里出了问题的建议-将其输出添加到问题中可能会有帮助请注意,不包含mdurational。请注意,要使用的区域设置始终为en,Vs。。。
using Excel.FinancialFunctions;

//...

//var formula = "MDURATION(43860.3507195718,44233,0.2,0.199014876362008,2,3)";

DateTime start = new DateTime(1900, 01, 01);
double modifiedDuration = Financial.MDuration(
    start.AddDays(43860.3507195718), 
    start.AddDays(44233), 
    0.2, 
    0.199014876362008,
    (Frequency)2, 
    (DayCountBasis)3);

workSheet.Cells["Z8"].Value = modifiedDuration;