EPPLus细胞配方#REF

本文关键字:#REF 细胞 EPPLus | 更新日期: 2023-09-27 18:27:10

希望有人能用EPPLUS和Formula解决这个问题。我收到一个无效的#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文件的样子。

Excel中使用无效#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!)

EPPLus细胞配方#REF

遇到了同样的问题。我让它工作,然后它在重构后坏了。在重构之前(纯属偶然),我一次向上复制一行,这似乎是它正常工作的唯一方法。

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

复制行10、粘贴行9、复制行9、粘贴行8…等等…