Class AbstractCalculationEngine

Class AbstractCalculationEngine

Namespace: Aspose.Cells
Assembly: Aspose.Cells.dll (25.2.0)

מייצג את מנוע החישוב המותאם אישית של המשתמש להרחיב את מנוע החישוב ברירת המחדל של Aspose.Cells.

public abstract class AbstractCalculationEngine

ירושה

objectAbstractCalculationEngine

חברים שהורשו

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

דוגמאות

Workbook wb = new Workbook("custom_calc.xlsx");
CalculationOptions opts = new CalculationOptions();
opts.CustomEngine = new MyEngine();
wb.CalculateFormula(opts);

class MyEngine : AbstractCalculationEngine
{
    public override void Calculate(CalculationData 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;
        }
    }
}

הערות

המשתמש לא צריך לשנות שום חלק מהWorkbook ישירות ביישום זה (מלבד התוצאה המחושבת של הפונקציה המותאמת, שניתן לקבוע על ידי מאפיין CalculationData.CalculatedValue). אחרת עשויה להיגרם תוצאה לא צפויה או חריגה. אם המשתמש צריך לשנות נתונים אחרים מלבד התוצאה המחושבת ביישום עבור פונקציות מותאמות מסוימות, לדוגמה, לשנות את הנוסחה של תא, סגנון, …וכו’, המשתמש צריך לאסוף את הנתונים הללו ביישום זה ולשנות אותם מחוץ להיקף חישוב הנוסחה.

בונים

AbstractCalculationEngine()

protected AbstractCalculationEngine()

מאפיינים

IsParamArrayModeRequired

מציין אם המנוע הזה זקוק לפרמטר שיחושב במצב מערך. ערך ברירת המחדל הוא false. אם Aspose.Cells.CalculationData.GetParamValueInArrayMode(System.Int32,System.Int32,System.Int32) נדרש כאשר מחשבים פונקציות מותאמות והמשתמש לא עדכן את ההגדרה עבורן (באמצעות Aspose.Cells.Workbook.UpdateCustomFunctionDefinition(Aspose.Cells.CustomFunctionDefinition)), מאפיין זה צריך להיות מוגדר כ-true.

public virtual bool IsParamArrayModeRequired { get; }

ערך מאפיין

bool

הערות

אם מנוע החישוב המותאם הזה זקוק לכך שהפרמטר יחושב במצב מערך, יהיו דרושים יותר מחסניות כדי לאחסן את העץ עבור הפרמטרים ושיטת Calculate() עשויה להיקרא באופן רקורסיבי כדי לחשב את ערך הפרמטר. לשיקולי ביצועים, אנא שמור על מאפיין זה כערך ברירת המחדל (false) אם אין דרישה מיוחדת.

IsParamLiteralRequired

מציין אם המנוע הזה זקוק לטקסט הליטרלי של הפרמטר בזמן החישוב. ערך ברירת המחדל הוא false.

public virtual bool IsParamLiteralRequired { get; }

ערך מאפיין

bool

הערות

אם מנוע החישוב המותאם הזה זקוק לטקסט הליטרלי של הפרמטר, יהיו דרושים יותר מחסניות כדי לאחסן את הטקסט הליטרלי עבור הפרמטרים ושיטת Calculate() עשויה להיקרא באופן רקורסיבי כדי לחשב את ערך הפרמטר. בדרך כלל הטקסט הליטרלי אינו נדרש לחישוב נוסחאות ומאפיין זה צריך להישמר כ-false עבור רוב היישומים כדי להשיג ביצועים טובים יותר.

ProcessBuiltInFunctions

האם פונקציות מובנות שכבר נתמכות על ידי המנוע המובנה צריכות להיבדק ולהתנהל על ידי יישום זה. ברירת המחדל היא false.

public virtual bool ProcessBuiltInFunctions { get; }

ערך מאפיין

bool

הערות

אם המשתמש צריך לשנות את הלוגיקה של חישוב פונקציות מובנות מסוימות, מאפיין זה צריך להיות מוגדר כ-true. אחרת, אנא השאר מאפיין זה כ-false לשיקולי ביצועים.

שיטות

Calculate(CalculationData)

מחשב פונקציה אחת עם נתונים נתונים.

public abstract void Calculate(CalculationData data)

פרמטרים

data CalculationData

הנתונים הנדרשים לחישוב הפונקציה כגון שם הפונקציה, פרמטרים, …וכו.

הערות

המשתמש צריך לקבוע את הערך המחושב עבור הנתונים הנתונים לכל הפונקציות (כולל פונקציות מקומיות של Excel) שהוא רוצה לחשב בעצמו ביישום זה.

ForceRecalculate(string)

האם להכריח פונקציה נתונה להיחשב מחדש תמיד כאשר מחשבים נוסחאות משותפות.

public virtual bool ForceRecalculate(string functionName)

פרמטרים

functionName string

שם הפונקציה. בדרך כלל זהו שם הפונקציה המותאמת. אם Aspose.Cells.AbstractCalculationEngine.ProcessBuiltInFunctions הוא true, אז פונקציות מובנות גם ייבדקו כאן.

מחזיר

bool

true אם הפונקציה המצוינת צריכה להיחשב מחדש תמיד.

הערות

לגבי נוסחאות משותפות, מספר תאים משתפים את אותה פונקציה. אם הפרמטרים של הפונקציה נשמרים גם עבור תאים אלה, אז בדרך כלל הפונקציה הזו צריכה להיחשב רק פעם אחת. אז לשיקולי ביצועים אנו מחשבים גם את סוג הפונקציה הזה רק פעם אחת (Aspose.Cells.AbstractCalculationEngine.Calculate(Aspose.Cells.CalculationData) מכונה רק פעם אחת, במקום להיקרא שוב ושוב עבור כל תא). עם זאת, עבור היישום המותאם אישית של המשתמש, ייתכן שהפונקציה, במיוחד הפונקציה המותאמת, צריכה להיחשב אחרת עבור תאים שונים. אם כך, המשתמש צריך לדרוס את השיטה הזו כדי לגרום לה להחזיר true עבור הפונקציה. ולגבי Aspose.Cells.AbstractCalculationEngine.Calculate(Aspose.Cells.CalculationData), ה-Aspose.Cells.CalculationData.CalculatedValue הנתון עשוי להיות מאותחל עם הערך המזוהה של חישוב קודם.

SkipCalculation()

protected void SkipCalculation()
 Ελληνικά