EPPLus Cell Formula #REF

时间:2015-12-17 03:50:16

标签: c# excel epplus epplus-4

希望有人能用EPPLUS和Formulas解决这个问题。 我收到了无效的#REF!当我尝试将一个公式分配给一个单元格时,最后一行似乎没有问题地接受该公式,并且计算正确。

以下是分配公式时逻辑的样子。我正在引用另一张表中的数据。

        string formula1 = "";
        string formula2 = "";

        int uniqueTimeRow = 14;
        if (uniqueTimes.Rows.Count != 0)
        {
            foreach (DataRow row in uniqueTimes.Rows)
            {
                if (row["ExecutionTime"].ToString() != "")
                {
                    wsSummary.InsertRow(uniqueTimeRow, 1, uniqueTimeRow);
                    wsSummary.SetValue(uniqueTimeRow, 2, row["ExecutionTime"].ToString());

                    formula1 = "SUMIF(DataSummary[Strategy],$B" + uniqueTimeRow.ToString() + ",DataSummary[ExecQty])";
                    formula2 = "SUMIF(DataSummary[Strategy],$B" + uniqueTimeRow.ToString() + ",DataSummary[PrincipalAmount])";

                    wsSummary.Cells[uniqueTimeRow, 3].Formula = formula1;
                    wsSummary.Cells[uniqueTimeRow, 4].Formula = formula2;

                    uniqueTimeRow++;
                }
            }
        }

这就是excel文件的结果。

Table Produced in Excel with the invalid #REF!

这是最后一个单元格中生成的公式:

=SUMIF(DataSummary[Strategy],$B28,DataSummary[ExecQty])
=SUMIF(DataSummary[Strategy],$B28,DataSummary[PrincipalAmount])

如果我向上复制这两个公式,则按预期生成:

=SUMIF(DataSummary[Strategy],$B27,DataSummary[ExecQty])
=SUMIF(DataSummary[Strategy],$B27,DataSummary[PrincipalAmount])

当它有无效的#REF时!这就是公式中出现的内容:

=SUMIF(#REF!,$B27,#REF!)

1 个答案:

答案 0 :(得分:0)

刚刚遇到同样的问题。我有它的工作,然后它重构后破了。在重构之前(通过纯粹的机会)我一次向上复制一行,这似乎是它正常工作的唯一方式。

为了澄清您必须复制一行然后将其粘贴到上面的行上。现在复制该行,并将其粘贴到上面的行:

复制第10行,粘贴第9行,复制第9行,粘贴第8行......依此类推......