HotXLS-documentatie

Calculate methode

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 / OnUserFunctionEx

Syntaxis

functieCalculate(Expression: WideString):Variant;
ExpressionWideString. 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

Val := Workbook.Calculate('MIN(A1:F10)');
This example is the same to previous

Val := Workbook.ActiveSheet.Calculate('MIN(A1:F10)');

Geverifieerde resultaten uit de cache

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);

Zie ook

OnUserFunction-callback
TXLSWorksheet.Calculate-methode