Вычисление пользовательских функций в GridWeb
Возможные сценарии использования
Aspose.Cells.GridWeb поддерживает вычисление пользовательских функций с помощью свойства GridWeb.CustomCalculationEngine. Это свойство принимает экземпляр интерфейса GridAbstractCalculationEngine. Пожалуйста, реализуйте интерфейс GridAbstractCalculationEngine и вычислите свои пользовательские функции собственной логикой.
Вычисление пользовательских функций в GridWeb
В следующем образце кода добавляется пользовательская функция с именем MYTESTFUNC() в ячейке B3. Затем мы вычисляем значение этой функции, реализуя интерфейс GridAbstractCalculationEngine. Мы вычисляем MYTESTFUNC() таким образом, что умножаем его параметр на 2 и возвращаем результат. Таким образом, если его параметр равен 9, он вернет 2*9 = 18.
Образец кода
| // 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(); | |
| } | |
| } |