HotXLS-dokumentation

Calculate metode

Beregner resultatet af et angivet udtryk
Den indbyggede evaluator understøtter aritmetik, celle- og områdereferencer, områder med definerede navne og disse funktionsgrupper: tekstfunktioner (TRIM, PROPER, CLEAN, CHAR, CODE, T, EXACT, REPT, FIND, SEARCH, SUBSTITUTE, REPLACE); datofunktioner (EDATE, EOMONTH, DATEDIF, YEARFRAC, DAYS, WEEKNUM, ISOWEEKNUM); arbejdsdagsfunktioner (WORKDAY, NETWORKDAYS); ingeniør-/basekonverteringsfunktioner (DEC2BIN, DEC2HEX, DEC2OCT, BIN2DEC, BIN2HEX, BIN2OCT, OCT2DEC, OCT2BIN, OCT2HEX, HEX2DEC, HEX2BIN, HEX2OCT, BASE, DECIMAL, ARABIC); bitwise-funktioner (BITAND, BITOR, BITXOR, BITLSHIFT, BITRSHIFT); statistikfunktioner (VAR, VARP, STDEV, STDEVP, MODE, VARA, VARPA, STDEVA, STDEVPA); aggregatfunktioner (PRODUCT, SUMSQ); matematiske funktioner (GCD, LCM, MROUND, QUOTIENT, MULTINOMIAL). Brugerdefinerede eller ikke-understøttede regnearksfunktioner kan stadig opløses via OnUserFunction / OnUserFunctionEx

Syntaks

function Calculate(Expression: WideString):Variant;
Expression WideString. En streng, der angiver det udtryk, der skal beregnes

Eksempel

Dette eksempel beregner det simple udtryk

Val := Workbook.Calculate('100/2*3');
Dette eksempel beregner et tekstudtryk

Val := Workbook.Calculate('SUBSTITUTE("a-b-c";"-";"+")');
Dette eksempel finder den mindste værdi i området A1:F10 på det aktive regneark

Val := Workbook.Calculate('MIN(A1:F10)');
Dette eksempel svarer til det forrige

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

Verifikation af cachede resultater

TXLSWorkbook og TXLSXWorkbook kan sammenligne gemte formelresultater med frisk beregnede resultater uden at erstatte den gemte cache
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out Mismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
Returværdien er antallet af uoverensstemmelser. Hver post indeholder SheetIndex, SheetName, 1-baseret Row og Col, Expected, Actual og Formula. Volatile formler, datatabelceller, formler uden gemt resultat og formler, der ikke kan evalueres, springes over
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 også

OnUserFunction callback
TXLSWorksheet.Calculatemetode