GridAbstractCalculationEngine

GridAbstractCalculationEngine class

代表用户自定义计算引擎,扩展Aspose.Cells的默认计算引擎。

public abstract class GridAbstractCalculationEngine

方法

姓名描述
abstract Calculate(GridCalculationData)用给定的数据计算一个函数。

评论

用户不应在此实现中直接修改 Workbook 的任何部分(自定义函数的计算结果除外,可以通过 GridCalculationData.CalculatedValue 属性设置)。 否则可能会导致意外结果或异常。 如果用户需要更改某些自定义函数的实现中计算结果以外的其他数据, 例如,更改单元格的公式、样式等,用户应在此实现中收集这些数据并将其更改为公式计算范围之外。

例子

[C#]
public class MyEngine : GridAbstractCalculationEngine
{
    public override void Calculate(GridCalculationData data)
    {
        string funcName = data.FunctionName.ToUpper();
        if ("MYFUNC".Equals(funcName))
        {
            //这里计算MYFUNC
            int count = data.ParamCount;
            object res = null;
            for (int i = 0; i < count; i++)
            {
                object pv = data.GetParamValue(i);
                if (pv is ReferredArea)
                {
                    ReferredArea ra = (ReferredArea)pv;
                    pv = ra.GetValue(0, 0);
                }
                //这里处理参数
                //res = ...;
            }
            data.CalculatedValue = res;
        }
    }
}

也可以看看