c# - EPPlus:用户自定义函数计算

标签 c# excel epplus vba

我想用EPPlus输入数据并计算。 Here is my excel files and user defined function 这是我的代码:

ExcelWorksheet sheet = ep.Workbook.Worksheets["input"];
sheet.Cells[1, 1].Value = 10;
ep.Workbook.Calculate();
string test = sheet.Cells[1, 5].Text;
ep.Save();

字符串测试是“#NAME?”

EPPlus 似乎没有加载用户自定义函数。

当我打开保存的文件时,计算会自动完成。

我应该怎么做才能使用户定义的函数起作用?

(稍后我将在 ASP.NET 中使用此功能来调用现有 excel 文件中的用户定义函数。我尝试了 Interop,它可以实现我想要的,但速度很慢。)

谢谢!

最佳答案

EPPlus 中的公式计算引擎无法执行工作簿中的VBA 函数。它支持大约。 150 个常见的内置 Excel 公式,仅此而已。

但是,您可以在 .NET 代码中实现 VBA 函数。每个函数都应继承 EPPlus 类 ExcelFunction 并通过 Workbook.FormulaParserManager 注册到 EPPlus,函数名称与您的 VBA 函数相同。

在可从 Codeplex 下载的 EPPlus 示例项目中有一些示例说明了这一点(创建自定义函数)。

对于 4.1 版,您可以在此处下载解决方案“EPPlus with samples”:

https://epplus.codeplex.com/releases/view/625020

然后转到“EPPlusSamples”项目并检查SampleAddFormulaFunction.cs

关于c# - EPPlus:用户自定义函数计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928723/

相关文章:

excel - 如何在组中获得最小值?

vb.net - 如何在数据透视表上设置列名称

c# - 为什么需要在 C# 中使用 DispId 注释?

c# - 这是如何运作的? LINQ to Entities 触发程序集加载?

c# - 如何置换 C# 中的对象列表?

c# - jquery .ajax 调用 Controller ,模型为空

string - vba添加字符串和日期时缺少0

excel - 使用标题名称的自动过滤字段

c# - 查找左上角单元格的坐标?使用 EPPlus

c# - 如何使用 EPPlus 库为 Excel 创建多样式单元格