Calculer des fonctions personnalisées dans GridWeb
Contents
[
Hide
]
Scénarios d’utilisation possibles
Aspose.Cells.GridWeb prend en charge le calcul des fonctions personnalisées avec la propriété GridWeb.CustomCalculationEngine. Cette propriété prend l’instance de l’interface GridAbstractCalculationEngine. Veuillez implémenter l’interface GridAbstractCalculationEngine et calculer vos fonctions personnalisées avec votre propre logique.
Calculer des fonctions personnalisées dans GridWeb
L’exemple de code suivant ajoute une fonction personnalisée nommée MYTESTFUNC() dans la cellule B3. Ensuite, nous calculons la valeur de cette fonction en implémentant l’interface GridAbstractCalculationEngine. Nous calculons MYTESTFUNC() de telle sorte qu’il multiplie son paramètre par 2 et renvoie le résultat. Donc si son paramètre est 9, il renverra 2*9 = 18.
Exemple de code
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(); | |
} | |
} |