HotXLS-dokumentation

Calculate metod

Beräknar resultatet av ett angivet uttryck
Den inbyggda utvärderaren stödjer aritmetik, cell- och områdesreferenser, områden via definierade namn samt dessa funktionsgrupper: textfunktioner (TRIM, PROPER, CLEAN, CHAR, CODE, T, EXACT, REPT, FIND, SEARCH, SUBSTITUTE, REPLACE); datumfunktioner (EDATE, EOMONTH, DATEDIF, YEARFRAC, DAYS, WEEKNUM, ISOWEEKNUM); arbetsdagsfunktioner (WORKDAY, NETWORKDAYS); teknik- och talkonverteringsfunktioner (DEC2BIN, DEC2HEX, DEC2OCT, BIN2DEC, BIN2HEX, BIN2OCT, OCT2DEC, OCT2BIN, OCT2HEX, HEX2DEC, HEX2BIN, HEX2OCT, BASE, DECIMAL, ARABIC); bitvisa funktioner (BITAND, BITOR, BITXOR, BITLSHIFT, BITRSHIFT); statistiska funktioner (VAR, VARP, STDEV, STDEVP, MODE, VARA, VARPA, STDEVA, STDEVPA); aggregerande funktioner (PRODUCT, SUMSQ); matematiska funktioner (GCD, LCM, MROUND, QUOTIENT, MULTINOMIAL) Egna kalkylbladsfunktioner, eller sådana som inte stöds, kan ändå lösas upp via OnUserFunction / OnUserFunctionEx

Syntax

function Calculate(Expression: WideString):Variant;
Expression WideString. En sträng som anger ett uttryck som ska beräknas

Exempel

Detta exempel beräknar det enkla uttrycket

Val := Workbook.Calculate('100/2*3');
Detta exempel beräknar ett textuttryck

Val := Workbook.Calculate('SUBSTITUTE("a-b-c";"-";"+")');
Detta exempel tar fram det minsta värdet i området A1:F10 på det aktiva kalkylbladet

Val := Workbook.Calculate('MIN(A1:F10)');
Detta exempel gör samma sak som det föregående

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

Verifiering av cachade resultat

TXLSWorkbook och TXLSXWorkbook kan jämföra lagrade formelresultat med färskt utvärderade resultat utan att ersätta det lagrade cachet
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out Mismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
Returvärdet är antalet avvikelser. Varje post innehåller SheetIndex, SheetName, ettbaserade Row och Col, Expected, Actual och Formula. Volatila formler, datatabellceller, formler utan lagrat resultat och formler som inte går att utvärdera hoppas över
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);

Se även

OnUserFunction callback
TXLSWorksheet.Calculatemetod