当前版本EPPLUS
支持创建excel公式,但不支持excel数组公式,尽管具有该CreateFormulaArray()
方法。
使用该CreateFormulaArray()
方法时,正确的公式字符串将出现在excel公式编辑器上。但是,该公式实际上并不在工作表上执行。
我想知道是否有人无需使用任何聪明的解决方法Microsoft.Office.Interop
我的代码是:
using (ExcelPackage pck = new ExcelPackage(newFile))
{
pck.Workbook.Worksheets.Add("Summary");
pck.Workbook.Worksheets.MoveToStart("Summary");
var summaryWS = pck.Workbook.Worksheets[1];
summaryWS.Cells["C2"].Value = 2;
summaryWS.Cells["C3"].Value = 3;
summaryWS.Cells["C4"].Value = 8;
summaryWS.Cells["A1"].CreateArrayFormula("STDEV.P($C$2:$C$4)*SQRT(8*260)");
}
我在excel中的输出将是#NAME?
公式编辑器将显示{=STDEV.P($C$2:$C$4)*SQRT(8*260)}
似乎Excel误解了函数名称STDEV.P
,它是的较新版本STDEVP
。如果您查看用excel打开并保存后的XML输出,则wb EPPlus生成的内容将显示_xludf.STDEV.P
,表示它认为它是用户定义的。
您可以做两件事之一。您可以使用该函数的旧版本:
summaryWS.Cells["A1"].CreateArrayFormula("STDEVP($C$2:$C$4)*SQRT(8*260)");
由于您总是想坚持使用最新版本,因此可能不太理想。在这种情况下,强制excel识别如下功能:
summaryWS.Cells["A1"].CreateArrayFormula("_xlfn.STDEV.P($C$2:$C$4)*SQRT(8*260)");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句