Documentação do HotXLS

Método Calculate

Calcula o resultado de uma expressão especificada
O avaliador incorporado suporta operações aritméticas, referências a células e intervalos, intervalos com nomes definidos e estes grupos de funções: funções de texto (TRIM, PROPER, CLEAN, CHAR, CODE, T, EXACT, REPT, FIND, SEARCH, SUBSTITUTE, REPLACE); funções de data (EDATE, EOMONTH, DATEDIF, YEARFRAC, DAYS, WEEKNUM, ISOWEEKNUM); funções de dia útil (WORKDAY, NETWORKDAYS); funções de engenharia/conversão de base (DEC2BIN, DEC2HEX, DEC2OCT, BIN2DEC, BIN2HEX, BIN2OCT, OCT2DEC, OCT2BIN, OCT2HEX, HEX2DEC, HEX2BIN, HEX2OCT, BASE, DECIMAL, ARABIC); funções bit a bit (BITAND, BITOR, BITXOR, BITLSHIFT, BITRSHIFT); funções estatísticas (VAR, VARP, STDEV, STDEVP, MODE, VARA, VARPA, STDEVA, STDEVPA); funções de agregação (PRODUCT, SUMSQ); funções matemáticas (GCD, LCM, MROUND, QUOTIENT, MULTINOMIAL). Funções de folha de cálculo personalizadas ou não suportadas ainda podem ser resolvidas através de OnUserFunction / OnUserFunctionEx

Sintaxe

function Calculate(Expression: WideString):Variant;
Expression WideString. Cadeia de caracteres que especifica uma expressão a calcular

Exemplo

Este exemplo calcula a expressão simples

Val := Workbook.Calculate('100/2*3');
Este exemplo calcula uma expressão de texto

Val := Workbook.Calculate('SUBSTITUTE("a-b-c";"-";"+")');
Este exemplo determina o menor valor num intervalo A1:F10 na Folha de Cálculo activa

Val := Workbook.Calculate('MIN(A1:F10)');
Este exemplo é igual ao anterior

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

Verificação de resultados em cache

TXLSWorkbook e TXLSXWorkbook podem comparar os resultados armazenados das fórmulas com resultados obtidos numa avaliação recente, sem substituir a cache armazenada
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out Mismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
O valor de retorno é o número de discrepâncias. Cada registo contém SheetIndex, SheetName, Row e Col de base 1, Expected, Actual e Formula. As fórmulas voláteis, as células de tabelas de dados, as fórmulas sem resultado armazenado e as fórmulas que não podem ser avaliadas são ignoradas
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);

Consulte também

Callback OnUserFunction
Método TXLSWorksheet.Calculate