首页 > 解决方案 > EPPLus 公式在特定单元格中不起作用

问题描述

我有一个通过一些 C# 代码生成的大型 Excel 工作表。

它使用许多不同的公式来计算各种值。这些值是通过策略模式实现给出的。

当尝试在列中使用以下三个公式时,S我得到一个奇怪的结果:

=R20
=R21
=R22

这三个目标单元格都有自己的公式,例如=P21*B27. 这适用于各种不同的列,因为我也在单元格列 Z 和 AF 中这样做,但是对于这个特定的列,我在生成 Excel 表时得到以下信息

=@$20:$20
=@$21:$21
=@$22:$22

这很奇怪,原因有很多。对于一个相同的代码确实适用于其他单元格。此外,当我在生成器程序中将所有单元格移动一列时,它也可以工作;似乎仅当 columnS尝试从 column 获取值时才会出现此问题R

我尝试过更改公式,使用不同的值或创建 SUM,但是每当 S 列尝试从 R 获取值时;它返回奇数=@$20:$20公式。

公式本身是这样设置的:

ws.Cells[x, y].FormulaR1C1 = strat.CalculateExcelValues(x, y, was);

Wherews代表工作表本身。策略实现如下所示

    public string CalculateExcelValues(int x, int y, ExcelWorksheet ws)
    {
        string PreviousColumnLetter = NumberToExcel.GetExcelColumn(y - 1);
        var PreviousDoughAmount = PreviousColumnLetter + (x).ToString();


        return $"{Previous_Dough_Thickness}";
    }

我在这里错过了一些一般逻辑吗?欢迎任何输入

标签: c#excelepplus

解决方案


推荐阅读