AbstractCalculationEngine

AbstractCalculationEngine class

Aspose.Cells’in varsayılan hesaplama motorunu genişletmek için kullanıcının özel hesaplama motorunu temsil eder.

public abstract class AbstractCalculationEngine

Özellikleri

İsimTanım
virtual IsParamLiteralRequired { get; }Bu motorun hesaplama yaparken parametrenin değişmez metnine ihtiyacı olup olmadığını gösterir. Varsayılan değer false.
virtual ProcessBuiltInFunctions { get; }Yerleşik motor tarafından desteklenen yerleşik işlevlerin bu uygulama tarafından kontrol edilip işlenip işlenmeyeceği. Varsayılan yanlıştır. Kullanıcının bazı yerleşik işlevlerin hesaplama mantığını değiştirmesi gerekiyorsa, bu özellik şu şekilde olmalıdır: true. olarak ayarla

yöntemler

İsimTanım
abstract Calculate(CalculationData)Verilen verilerle bir işlevi hesaplar.

Notlar

Kullanıcı, bu uygulamada Çalışma Kitabının herhangi bir bölümünü doğrudan değiştirmemelidir (CalculationData.CalculatedValue özelliği tarafından ayarlanabilen özel işlevin hesaplanan sonucu hariç). Aksi takdirde beklenmeyen sonuçlara veya İstisnaya neden olabilir. Kullanıcının değişmesi gerekiyorsa hesaplanan dışındaki veriler, bazı özel işlevler için uygulamada sonuçlanır, örneğin, hücrenin formülünü, stilini vb. değiştirin, kullanıcı bu verileri bu uygulamada toplamalı ve bunları formül hesaplama kapsamı dışında değiştirmelidir.

Örnekler

[C#]
public class MyEngine : AbstractCalculationEngine
{
    public override void Calculate(CalculationData data)
    {
        string funcName = data.FunctionName.ToUpper();
        if ("MYFUNC".Equals(funcName))
        {
            // MYFUNC için hesaplamayı burada yapın
            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);
                }
                // parametreyi burada işleyin
                //res = ...;
            }
            data.CalculatedValue = res;
        }
    }
}

Ayrıca bakınız