我使用EPPlus来操作Excel文件。我需要插入一个引用整个列的公式。我目前正在使用:
currentWorksheet.Cells[2, 4].Formula = "QUARTILE(C:C,1)";
如果我手动将此公式输入到Excel表格中,或者如果我在EPPlus中插入有限范围,如下所示:
=QUARTILE(C2:C1000,1)
但是当它使用EPPlus作为C:C的整个列范围插入时,会产生以下结果:
=QUARTILE(#REF!,1)
在引用整个列时是否需要特殊内容,或者这只是EPPlus中的错误?
答案 0 :(得分:3)
您可以使用以下代码
worksheet.Cells["A1"].Formula= "=QUARTILE(C2:C1000,1)";
答案 1 :(得分:2)
[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();
}
}