HotXLS-Dokumentation

Calculate-Methode

Berechnet das Ergebnis des angegebenen Ausdrucks
Der integrierte Evaluator unterstützt Arithmetik, Zell- und Bereichsreferenzen, definierte Namensbereiche sowie folgende Funktionsgruppen: Textfunktionen (TRIM, PROPER, CLEAN, CHAR, CODE, T, EXACT, REPT, FIND, SEARCH, SUBSTITUTE, REPLACE,EDATE, EOMONTH, DATEDIF), Datumsfunktionen ( YEARFRAC, DAYS, WEEKNUM, ISOWEEKNUM,WORKDAY, NETWORKDAYS,DEC2BIN, DEC2HEX, DEC2OCT, BIN2DEC, BIN2HEX, BIN2OCT, OCT2DEC), Mathematikfunktionen ( OCT2BIN, OCT2HEX, HEX2DEC, HEX2BIN, HEX2OCT, BASE, DECIMAL, ARABIC,BITAND, BITOR, BITXOR, BITLSHIFT, BITRSHIFT,VAR, VARP, STDEV, STDEVP, MODE, VARA, VARPA, STDEVA) STDEVPA); aggregate functions (PRODUCT, SUMSQ); math functions (GCD, LCM, MROUND, QUOTIENT, MULTINOMIAL) Benutzerdefinierte oder nicht unterstützte Arbeitsblattfunktionen lassen sich weiterhin auflösen über OnUserFunction / OnUserFunctionEx

Syntax

functionCalculate(Expression: WideString):Variant;
ExpressionWideString. Ein String, der einen Ausdruck angibt, der berechnet werden soll

Beispiel

Dieses Beispiel berechnet den einfachen Ausdruck

Val := Workbook.Calculate('100/2*3');
Dieses Beispiel berechnet einen Textausdruck

Val := Workbook.Calculate('SUBSTITUTE("a-b-c";"-";"+")');
Dieses Beispiel ermittelt den kleinsten Wert in einem Bereich A1:F10 auf dem aktiven Tabellenblatt

Val := Workbook.Calculate('MIN(A1:F10)');
Dieses Beispiel ist identisch mit dem vorherigen

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

Verifikation gespeicherter Ergebnisse

TXLSWorkbook und TXLSXWorkbook können gespeicherte Formelergebnisse mit frisch berechneten Ergebnissen vergleichen, ohne den gespeicherten Cache zu ersetzen
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out Mismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
Der Rückgabewert ist die Anzahl der Abweichungen. Jeder Datensatz enthält SheetIndex, SheetName, die einsbasierten Row und Col, Expected, Actualund Formula. Flüchtige Formeln, Zellen von Datentabellen, Formeln ohne gespeichertes Ergebnis und Formeln, die nicht ausgewertet werden können, werden übersprungen
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);

Siehe auch

OnUserFunction-Callback
TXLSWorksheet.Calculate-Methode