Расчет пользовательских функций в GridWeb
Contents
[
Hide
]
Возможные сценарии использования
Aspose.Cells.GridWeb поддерживает расчет пользовательских функций с помощью свойства GridWeb.CustomCalculationEngine. Это свойство принимает экземпляр интерфейса GridAbstractCalculationEngine. Пожалуйста, реализуйте интерфейс GridAbstractCalculationEngine и вычисляйте свои пользовательские функции с помощью собственной логики.
Расчет пользовательских функций в GridWeb
Следующий пример кода добавляет пользовательскую функцию с именем MYTESTFUNC() в ячейку B3. Затем мы вычисляем значение этой функции, реализуя интерфейс GridAbstractCalculationEngine. Мы вычисляем MYTESTFUNC() таким образом, что он умножает свой параметр на 2 и возвращает результат. Поэтому, если его параметр равен 9, он вернет 2 * 9 = 18.
Образец кода
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
private class GridWebCustomCalculationEngine : GridAbstractCalculationEngine | |
{ | |
public override void Calculate(GridCalculationData data) | |
{ | |
// Calculate MYTESTFUNC() with your own logic. i.e Multiply MYTESTFUNC() parameter with 2 so MYTESTFUNC(3.0) = 6 | |
if ("MYTESTFUNC".Equals(data.FunctionName.ToUpper())) | |
{ | |
data.CalculatedValue = (decimal)(2.0 * (double)data.GetParamValue(0)); | |
} | |
} | |
} | |
protected void Page_Load(object sender, EventArgs e) | |
{ | |
if (Page.IsPostBack == false && GridWeb1.IsPostBack == false) | |
{ | |
// Assign your own custom calculation engine to GridWeb | |
GridWeb1.CustomCalculationEngine = new GridWebCustomCalculationEngine(); | |
// Access the active worksheet and add your custom function in cell B3 | |
GridWorksheet sheet = GridWeb1.ActiveSheet; | |
GridCell cell = sheet.Cells["B3"]; | |
cell.Formula = "=MYTESTFUNC(9.0)"; | |
// Calculate the GridWeb formula | |
GridWeb1.CalculateFormula(); | |
} | |
} |