العمل مع محرك الحساب المخصص

تنفيذ محرك الحساب المخصص

Aspose.Cells.Gridweb يحتوي على محرك حساب قوي يمكنه حساب معظم صيغ Microsoft Excel. على الرغم من ذلك، فإنه يسمح أيضًا لك بتوسيع محرك الحساب الافتراضي الذي يوفر لك قوة ومرونة أكبر.

يتم استخدام الخصائص والفئات التالية في تنفيذ هذه الميزة.

ينفذ الكود العيني محرك الحساب المخصص. ينفذ واجهة البرمجة GridAbstractCalculationEngine التي تحتوي على طريقة Calculate(GridCalculationData data). يتم استدعاء هذه الطريقة ضد جميع معادلاتك. داخل هذه الطريقة، نقوم بالتقاط المعادلة MYTESTFUNC ونظرب بها 2 لقيمة معلمتها الأولى.

نموذج برمجة

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
private class CustomEngineSimple : GridAbstractCalculationEngine
{
public override void Calculate(GridCalculationData data)
{
if (!"MYTESTFUNC".Equals(data.FunctionName.ToUpper()))
{
return;
}
data.CalculatedValue = (decimal)(2.0 * (double)data.GetParamValue(0));
}
}
protected void Page_Load(object sender, EventArgs e)
{
// If first visit this page clear GridWeb1 and load data
if (!IsPostBack && !GridWeb1.IsPostBack)
{
CustomEngineSimple ce = new CustomEngineSimple();
GridWeb1.CustomCalculationEngine = ce;
GridWorksheet sheet = GridWeb1.ActiveSheet;
GridCell cell = sheet.Cells["A1"];
cell.Formula = "=MYTESTFUNC(3.0)";
cell = sheet.Cells["A2"];
cell.PutValue("hello");
cell = sheet.Cells["B1"];
cell.PutValue(1);
cell = sheet.Cells["B2"];
cell.PutValue(2);
cell = sheet.Cells["B3"];
cell.PutValue(3);
cell = sheet.Cells["A3"];
cell.Formula = "=SUM(B1:B3)";
GridWeb1.CalculateFormula();
sheet.ActiveCell = "A4";
}
}