AbstractCalculationEngine
Innehåll
[
Dölj
]AbstractCalculationEngine class
Representerar användarens anpassade beräkningsmotor för att utöka standardberäkningsmotorn för Aspose.Cells.
public abstract class AbstractCalculationEngine
Egenskaper
namn | Beskrivning |
---|---|
virtual IsParamLiteralRequired { get; } | Indikerar om denna motor behöver den bokstavliga texten av parametern när den gör beräkningar. Standardvärdet är false. |
virtual ProcessBuiltInFunctions { get; } | Huruvida inbyggda funktioner som har stöds av den inbyggda motorn ska kontrolleras och bearbetas av denna implementering. Standard är falsk. Om användaren behöver ändra beräkningslogiken för vissa inbyggda funktioner, bör denna egenskap vara satt som sant. |
Metoder
namn | Beskrivning |
---|---|
abstract Calculate(CalculationData) | Beräknar en funktion med givna data. |
Anmärkningar
Användaren bör inte ändra någon del av arbetsboken direkt i den här implementeringen (förutom det beräknade resultatet av den anpassade funktionen, som kan ställas in av egenskapen CalculationData.CalculatedValue). Annars kan oväntade resultat eller undantag orsakas. Om användaren behöver ändra andra data än beräknade resulterar i implementeringen för vissa anpassade funktioner, till exempel, ändra cells formel, stil, … etc., användaren bör samla in dessa data i denna implementering och ändra dem utanför ramen för formelberäkningen.
Exempel
[C#]
public class MyEngine : AbstractCalculationEngine
{
public override void Calculate(CalculationData data)
{
string funcName = data.FunctionName.ToUpper();
if ("MYFUNC".Equals(funcName))
{
//gör beräkning för MYFUNC här
int count = data.ParamCount;
object res = null;
for (int i = 0; i < count; i++)
{
object pv = data.GetParamValue(i);
if (pv is ReferredArea)
{
ReferredArea ra = (ReferredArea)pv;
pv = ra.GetValue(0, 0);
}
//bearbeta parametern här
//res = ...;
}
data.CalculatedValue = res;
}
}
}
Se även
- namnutrymme Aspose.Cells
- hopsättning Aspose.Cells