Documentación de HotXLS

Método Calculate

Calcula el resultado de la expresión especificada
El evaluador integrado admite aritmética, referencias a celdas y rangos, rangos de nombres definidos y estos grupos de funciones: funciones de texto (TRIM, PROPER, CLEAN, CHAR, CODE, T, EXACT, REPT, FIND, SEARCH, SUBSTITUTE, REPLACE); funciones de fecha (EDATE, EOMONTH, DATEDIF, YEARFRAC, DAYS, WEEKNUM, ISOWEEKNUM); funciones de días laborables (WORKDAY, NETWORKDAYS); funciones de ingeniería/conversión de base (DEC2BIN, DEC2HEX, DEC2OCT, BIN2DEC, BIN2HEX, BIN2OCT, OCT2DEC, OCT2BIN, OCT2HEX, HEX2DEC, HEX2BIN, HEX2OCT, BASE, DECIMAL, ARABIC); funciones bit a bit (BITAND, BITOR, BITXOR, BITLSHIFT, BITRSHIFT); funciones estadísticas (VAR, VARP, STDEV, STDEVP, MODE, VARA, VARPA, STDEVA, STDEVPA); funciones de agregado (PRODUCT, SUMSQ); funciones matemáticas (GCD, LCM, MROUND, QUOTIENT, MULTINOMIAL) Las funciones de hoja de cálculo personalizadas o no admitidas aún pueden resolverse mediante OnUserFunction / OnUserFunctionEx

Sintaxis

function Calculate(Expression: WideString):Variant;
Expression WideString. Cadena que especifica la expresión que se debe calcular

Ejemplo

Este ejemplo calcula la expresión simple

Val := Workbook.Calculate('100/2*3');
Este ejemplo calcula una expresión de texto

Val := Workbook.Calculate('SUBSTITUTE("a-b-c";"-";"+")');
Este ejemplo determina el valor más pequeño de un rango A1:F10 en la hoja de cálculo activa

Val := Workbook.Calculate('MIN(A1:F10)');
Este ejemplo es equivalente al anterior

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

Comprobación de resultados en caché

TXLSWorkbook y TXLSXWorkbook pueden comparar los resultados de fórmula almacenados con resultados evaluados recientemente, sin reemplazar la caché almacenada
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out Mismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
El valor devuelto es el número de discrepancias. Cada registro contiene SheetIndex, SheetName, la Row y la Col de base 1, Expected, Actual y Formula. Se omiten las fórmulas volátiles, las celdas de tablas de datos, las fórmulas sin resultado almacenado y las fórmulas que no se pueden evaluar
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);

Ver también

Callback OnUserFunction
Método TXLSWorksheet.Calculate