Utilizzo del motore di calcolo personalizzato
Contents
[
Hide
]
Implementa il motore di calcolo personalizzato
Aspose.Cells.Gridweb ha un potente motore di calcolo in grado di calcolare quasi tutte le formule Excel Microsoft. Nonostante ciò, ti consente anche di estendere il motore di calcolo predefinito che ti offre maggiore potenza e flessibilità.
Le seguenti proprietà e classi vengono utilizzate per implementare questa funzionalità.
Il codice seguente implementa il motore di calcolo personalizzato. Implementa l’interfaccia**GridAbstractCalculationEngine** che ha un**Calcola(dati GridCalculationData)** metodo. Questo metodo viene chiamato contro tutte le tue formule. All’interno di questo metodo, acquisiamo il file**MYTESTFUNC** formula e moltiplicare per 2 per il suo primo valore di parametro .
Esempio di programmazione
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 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"; | |
} | |
} | |