EPPlus不插入配方Correcty

我正在使用EPPlus来操作Excel文件。 我需要插入一个引用整个列的公式。 我目前正在使用:

currentWorksheet.Cells[2, 4].Formula = "QUARTILE(C:C,1)"; 

如果我手动input这个公式到Excel工作表中,或者如果我在EPPlus中插入一个有限的范围,就像这样:

 =QUARTILE(C2:C1000,1) 

但是,当使用EPPlus将其作为C:C的整个列范围插入时,结果如下:

 =QUARTILE(#REF!,1) 

在引用整个列时是否有特别需要,还是仅仅是EPPlus中的一个错误?

你可以使用下面的代码

 worksheet.Cells["A1"].Formula= "=QUARTILE(C2:C1000,1)"; 

斯图尔特是正确的,公式应该是有效的。 尝试粘贴其余的代码。 我一起想了一个快速的unit testing,它工作得很好:

 [TestMethod] public void Quartile_Range_Test() { //Throw in some data var dtMain = new DataTable("tblData"); dtMain.Columns.Add(new DataColumn("Col1", typeof(int))); for (var i = 0; i < 20; i++) { var row = dtMain.NewRow(); row["Col1"] = i * 100; dtMain.Rows.Add(row); } //Clear the file var newFile = new FileInfo(@"C:\Temp\Temp.xlsx"); if (newFile.Exists) newFile.Delete(); using (var package = new ExcelPackage(newFile)) { var currentWorksheet = package.Workbook.Worksheets.Add("Test"); currentWorksheet.Cells["C1"].LoadFromDataTable(dtMain, false); currentWorksheet.Cells[2, 4].Formula = "QUARTILE(C:C,1)"; package.Save(); } }