我想用EPPlus输入数据并计算。 这是我的代码:
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/