【问题标题】:epplus Excel Duration formula not working in C#epplus Excel 持续时间公式在 C# 中不起作用
【发布时间】:2020-01-30 05:09:25
【问题描述】:

我在C# 中编写了以下持续时间计算代码

ExcelPackage excel = new ExcelPackage();
var workSheet = excel.Workbook.Worksheets.Add("Sheet1");
workSheet.View.RightToLeft = true;

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

workSheet.Cells["Z8"].Formula = formula;
workSheet.Cells["Z8"].Calculate();
var result= (workSheet.Cells["Z8"].Value);

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

【问题讨论】:

标签: c# excel-formula epplus duration


【解决方案1】:

正如 cmets 中所建议的,epplus 的当前版本不支持 MDURATION 函数。

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

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多