Calcular funciones personalizadas en GridWeb
Contents
[
Hide
]
Posibles escenarios de uso
Aspose.Cells.GridWeb admite el cálculo de funciones personalizadas con la propiedad GridWeb.CustomCalculationEngine. Esta propiedad toma la instancia de la interfaz GridAbstractCalculationEngine. Implemente la interfaz GridAbstractCalculationEngine y calcule sus funciones personalizadas con su propia lógica.
Calcular funciones personalizadas en GridWeb
El siguiente código de ejemplo agrega una función personalizada denominada MYTESTFUNC() en la celda B3. Luego calculamos el valor de esta función implementando la interfaz GridAbstractCalculationEngine. Calculamos MYTESTFUNC() de tal manera que multiplique su parámetro por 2 y devuelva el resultado. Entonces, si su parámetro es 9, devolverá 2*9 = 18.
Código de muestra
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(); | |
} | |
} |