Berekent het resultaat van de opgegeven uitdrukking
De ingebouwde evaluator ondersteunt rekenkunde, cel- en bereikverwijzingen, bereiken met gedefinieerde namen en de volgende functiegroepen:
text functies (
TRIM,
PROPER,
CLEAN,
CHAR,
CODE,
T,
EXACT,
REPT,
FIND,
SEARCH,
SUBSTITUTE,
REPLACE);
date functies (
EDATE,
EOMONTH,
DATEDIF,
YEARFRAC,
DAYS,
WEEKNUM,
ISOWEEKNUM);
workday functies (
WORKDAY,
NETWORKDAYS);
engineering/base-conversion functies (
DEC2BIN,
DEC2HEX,
DEC2OCT,
BIN2DEC,
BIN2HEX,
BIN2OCT,
OCT2DEC,
OCT2BIN,
OCT2HEX,
HEX2DEC,
HEX2BIN,
HEX2OCT,
BASE,
DECIMAL,
ARABIC);
bitwise functies (
BITAND,
BITOR,
BITXOR,
BITLSHIFT,
BITRSHIFT);
statistical functies (
VAR,
VARP,
STDEV,
STDEVP,
MODE,
VARA,
VARPA,
STDEVA,
STDEVPA);
aggregate functies (
PRODUCT,
SUMSQ);
math functies (
GCD,
LCM,
MROUND,
QUOTIENT,
MULTINOMIAL)
Custom of unsupported worksheet functies can still be resolved through
OnUserFunction / OnUserFunctionExSyntaxis
functieCalculate(Expression: WideString):Variant;
| Expression | WideString. Een tekenreeks die de uitdrukking aangeeft die moet worden berekend |
Voorbeeld
Dit voorbeeld berekent de eenvoudige uitdrukking
Val := Workbook.Calculate('100/2*3');
Dit voorbeeld berekent een tekstuitdrukking
Val := Workbook.Calculate('SUBSTITUTE("a-b-c";"-";"+")');
Dit voorbeeld bepaalt de kleinste waarde in het bereik A1:F10 op het actieve werkblad
TXLSWorkbook en TXLSXWorkbook kunnen opgeslagen formuleresultaten vergelijken met vers berekende resultaten, zonder de opgeslagen cache te vervangen
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out Mismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
De returnwaarde is het aantal mismatches. Elk record bevat SheetIndex, SheetName, een op 1 gebaseerde Row en Col, Expected, Actualen Formula. Vluchtige formules, data-tabelcellen, formules zonder opgeslagen resultaat en formules die niet kunnen worden geƫvalueerd, worden overgeslagen
MismatchCount := Workbook.CalculateAndVerify(Mismatches);
for I := 0 to MismatchCount - 1 do
Log(Mismatches[I].SheetName, Mismatches[I].Row,
Mismatches[I].Col, Mismatches[I].Expected, Mismatches[I].Actual);