能否用公式读取Excel单元格的值?

6
在我的下面代码中,c4的值为零。C4单元格有一个SUM(C2:C3)函数。EPPlus可以读取带公式的单元格吗?为什么c4被设为0而不是12?
using (var package = new ExcelPackage(existingFile))
{
    ExcelWorkbook workBook = package.Workbook;
    var currentWorksheet = workBook.Worksheets.First();

    currentWorksheet.Cells["C2"].Value = 5;
    currentWorksheet.Cells["C3"].Value = 7;
    var c4 = Convert.ToDouble(currentWorksheet.Cells["C4"].Value); //c4 is zero. why?
}

你可以尝试使用.Formula而不是.Value吗?这可能会有所帮助。 - Graffl
currentWorksheet.Cells["C4"].Formula 返回 "SUM(C2:C3)"。 - dotnet-practitioner
2
是的,抱歉。我没有仔细阅读你的问题。这里的问题在于EPPlus无法执行计算。 Excel需要计算公式,据我所知,因此需要打开该文件。 - Graffl
1个回答

13
从EpPlus 4.0.1.1版本起,有一个扩展方法public static void Calculate(this ExcelRangeBase range)。在访问C4的Value属性之前调用它:
currentWorksheet.Cells["C4"].Calculate();

接着,currentWorksheet.Cells [“C4”] .Value 将在此之后返回12


我为你的回答感激不尽,我找了五个小时才找到它。 - ProfK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接