C# EPPLus单元公式#参考

C# EPPLus单元公式#参考,c#,excel,epplus,epplus-4,C#,Excel,Epplus,Epplus 4,希望有人能用ePlus和公式解决这个问题。 我得到一个无效的裁判!当我尝试将公式分配给单元格时,最后一行似乎毫无问题地接受了公式,并且计算正确 下面是分配公式时的逻辑。我正在引用另一张表中的数据 string formula1 = ""; string formula2 = ""; int uniqueTimeRow = 14; if (uniqueTimes.Rows.Count != 0) {

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

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

        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文件的外观

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

=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!)

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

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


复制第10行,粘贴第9行,复制第9行,粘贴第8行。。。等等…

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

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


复制第10行,粘贴第9行,复制第9行,粘贴第8行。。。等等……

您确定您引用的数据实际上包含可以求和的数据吗?这似乎是现有电子表格的一个问题,给它一个无效的查找,而不是代码。是的,有数据,这就是为什么你看到excel文件中的最后一行实际上产生了一些东西。如果我从最后一行向上复制公式,它会正确计算。那么您能告诉我们两个公式(代码生成的第一个)和有效公式(复制时)的差异吗?你确定复制时没有使用完全相同的公式包括行吗?唯一的区别是
$B(num)
-这对我来说意味着最后一行(比如
$B16
)是有效的,但
$B14
不是有效的-在任何情况下,如果看不到excel文件,我们都帮不上忙,因为这个问题完全是关于excel的,与
EPPlus不相关,如果没有完全相同的数据集/工作表,很难诊断。你能把文件放在某个地方吗?你确定你引用的数据实际上包含可以求和的数据吗?这似乎是现有电子表格的一个问题,给它一个无效的查找,而不是代码。是的,有数据,这就是为什么你看到excel文件中的最后一行实际上产生了一些东西。如果我从最后一行向上复制公式,它会正确计算。那么您能告诉我们两个公式(代码生成的第一个)和有效公式(复制时)的差异吗?你确定复制时没有使用完全相同的公式包括行吗?唯一的区别是
$B(num)
-这对我来说意味着最后一行(比如
$B16
)是有效的,但
$B14
不是有效的-在任何情况下,如果看不到excel文件,我们都帮不上忙,因为这个问题完全是关于excel的,与
EPPlus不相关,如果没有完全相同的数据集/工作表,很难诊断。你能把文件寄到什么地方吗?