Docs HotXLS

Calculate-method

Calcule le résultat de l'expression indiquée
L'évaluateur intégré prend en charge l'arithmétique, les références de cellules et de plages, les plages de noms définis, ainsi que ces groupes de fonctions : fonctions de texte (TRIM, PROPER, CLEAN, CHAR, CODE, T, EXACT, REPT, FIND, SEARCH, SUBSTITUTE, REPLACE) ; fonctions de date (EDATE, EOMONTH, DATEDIF, YEARFRAC, DAYS, WEEKNUM, ISOWEEKNUM) ; fonctions de jours ouvrés (WORKDAY, NETWORKDAYS) ; fonctions d'ingénierie et de conversion de bases (DEC2BIN, DEC2HEX, DEC2OCT, BIN2DEC, BIN2HEX, BIN2OCT, OCT2DEC, OCT2BIN, OCT2HEX, HEX2DEC, HEX2BIN, HEX2OCT, BASE, DECIMAL, ARABIC) ; fonctions bit à bit (BITAND, BITOR, BITXOR, BITLSHIFT, BITRSHIFT) ; fonctions statistiques (VAR, VARP, STDEV, STDEVP, MODE, VARA, VARPA, STDEVA, STDEVPA) ; fonctions d'agrégat (PRODUCT, SUMSQ) ; fonctions mathématiques (GCD, LCM, MROUND, QUOTIENT, MULTINOMIAL) Les fonctions de feuille de calcul personnalisées ou non prises en charge peuvent toujours être résolues via OnUserFunction / OnUserFunctionEx

Syntaxe

function Calculate(Expression: WideString):Variant;
Expression WideString. Chaîne qui spécifie l'expression à calculer

Exemple

Cet exemple calcule l'expression simple

Val := Workbook.Calculate('100/2*3');
Cet exemple calcule une expression texte

Val := Workbook.Calculate('SUBSTITUTE("a-b-c";"-";"+")');
Cet exemple détermine la plus petite valeur dans la plage A1:F10 de la feuille de calcul active

Val := Workbook.Calculate('MIN(A1:F10)');
Cet exemple est identique au précédent

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

Vérification des résultats en cache

TXLSWorkbook et TXLSXWorkbook peuvent comparer les résultats de formules stockés aux résultats fraîchement évalués, sans remplacer le cache stocké
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out Mismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
La valeur renvoyée est le nombre de divergences. Chaque enregistrement contient SheetIndex, SheetName, Row et Col en base un, Expected, Actual et Formula. Les formules volatiles, les cellules de tables de données, les formules sans résultat stocké et les formules non évaluables sont ignorées
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);

Voir aussi

OnUserFunction callback
TXLSWorksheet.Calculate méthode