c# - epplus Excel 持续时间公式在 C# 中不起作用
问题描述
我已经为持续时间计算编写了以下代码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
解决方案
正如评论中所建议的,当前版本的epplus
不支持该MDURATION
功能。
但是,您可以使用另一个NuGet Package
:ExcelFinancialFunctions
如下:
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;
推荐阅读
- python - ImportError:检测到解释器更改
- reactjs - VideoJS 没有质量级别/尽管在 Safari 桌面中具有 overrideNative,但无法选择质量
- azure - 如何使用单个 powershell 命令或脚本清理多个 Azure 资源?
- android - 连接到多个外围设备时如何通过 UUID 或其他变量分隔传入数据
- html - 使用 Rvest 进行网页抓取:登录问题
- bpmn - 当另一个分支被占用时,从并行分支停止任务
- ssis - SQL - SSIS 包在重新启动 SQL Server 代理后停止工作(密码错误)
- python - 将列表附加到类对象(python)
- azure-devops - Azure DevOps:获取 Git 存储库的贡献者
- postgresql - 用户 REFERENCE 列的 PostgreSQL 迁移语法错误