function EvaluateFormulaAt(Row, Col: Integer; const Formula: WideString): TXLSFormulaEvaluationResult; overload; function EvaluateFormulaAt(Row, Col: Integer; const Formula: WideString; ReferenceStyle: TXLSFormulaReferenceStyle; const Options: TXLSFormulaEvaluationOptions): TXLSFormulaEvaluationResult; overload;
xlfrsA1 conserva las referencias absolutas y mixtas mientras resuelve las referencias relativas desde la celda de destino; xlfrsR1C1 resuelve los desplazamientos relativos directamente desde ese destino
CELL sin una referencia explícita inspecciona la celda destino suministrada; use $A$1 para inspeccionar la primera celda fija desde cualquier destino, mientras que A1 se resuelve relativa a ese destino bajo el contrato del contexto A1
CELL respaldados por modelo y INFO("recalc") también funcionan a través de vistas de solo lectura del libro sin cambiar su generación ni las cachés de fórmulas almacenadas; CELL("width",reference) conserva su arreglo de una fila y dos columnas, y los formatos personalizados sin clasificar devuelven xlfeUnsupportedFunction en lugar de inventar un código de formato; consulte metadatos de CELL e INFO para los límites completos de headless y configuración regional
FORMULATEXT inspecciona los metadatos de fórmula almacenados a través de ambos motores de hoja y de las vistas de solo lectura sin calcular el destino inspeccionado; GETPIVOTDATA evalúa una instantánea separada de la caché existente de una tabla dinámica local y respeta los presupuestos de evaluación y la cancelación; los agregados visibles ausentes siguen siendo valores #REF! con tipo, mientras que los modelos de tabla dinámica incompletos o no soportados devuelven xlfeUnsupportedFunction; consulte inspección de texto de fórmula y datos visibles de tabla dinámica para los límites de almacenamiento, arreglos y caché
TXLSFormulaEvaluationResult devuelve Status, el Valuecon tipo original, IsVolatiley un registro Issue estable que contiene el estado, el código nativo y el mensaje
TXLSFormulaEvaluationStatus = (xlfeOk, xlfeInvalidArgument,
xlfeWorksheetUnavailable, xlfeParseError, xlfeUnsupportedFunction,
xlfeCircularReference, xlfeExternalReferenceDenied, xlfeCancelled,
xlfeResourceLimit, xlfeFailed, xlfeUnsafeFunctionDenied);
TXLSFormulaEvaluationIssue = record
Status: TXLSFormulaEvaluationStatus;
NativeCode: Integer;
Message: WideString;
end;
#DIV/0!, #REF!, las cadenas vacías, las matrices, los valores booleanos y las fechas siguen siendo valores distinguibles; las fallas de análisis, las funciones no admitidas, las referencias circulares, las referencias externas denegadas, las devoluciones de llamada no seguras denegadas, la cancelación, los argumentos inválidos, las hojas de cálculo no disponibles y el agotamiento de recursos usan estados explícitos de la API Issue.NativeCode lleva el código de error subyacente del motor e Issue.Message la descripción legible para humanos cuando Status no es xlfeOkfunction CreateFormulaEvaluationTemplate(Row, Col: Integer; const Formula: WideString; ReferenceStyle: TXLSFormulaReferenceStyle): IXLSFormulaEvaluationTemplate;
EvaluateAt y EvaluateAtWithOptions para evaluaciones repetidas en distintas celdas de destino
xlfeWorksheetUnavailable después de la destrucción del libro de trabajo y recurren a la recompilación con conocimiento del contexto cuando los cambios del libro de trabajo dejan obsoleto el contexto compilado original
| AllowExternalReferences | El valor predeterminado es true, pero solo permite destinos del área de trabajo registrados explícitamente o cachés locales del archivo, y nunca realiza acceso implícito a archivos o a la red |
| AllowUnsafeFormulaCallbacks | El valor predeterminado es false y bloquea los nombres de funciones peligrosos para que no lleguen a un registro de funciones de usuario o a una devolución de llamada antes de evaluar cualquier argumento; la denegación devuelve xlfeUnsafeFunctionDenied |
| CancelFlag | Puntero booleano opcional comprobado antes y después de la evaluación |
| MaxFormulaLength | El valor predeterminado es 8192 unidades de código UTF-16 |
| MaxEvaluationSteps | El valor predeterminado es 1,000,000 evaluaciones de elementos de sintaxis |
| MaxRecursionDepth | El valor predeterminado es 256 evaluaciones de fórmulas anidadas |
| MaxArrayBytes | El valor predeterminado es 64 MiB para las cargas de matrices generadas |
xlfeResourceLimit después de liberar el estado de evaluación temporal
AllowUnsafeFormulaCallbacks como autoritaria para esa llamada; la evaluación predeterminada de una sola llamada y la de plantillas heredan la propiedad del libro de trabajo del mismo nombre
Template := Sheet.CreateFormulaEvaluationTemplate(2, 2, '=R[-1]C[-1]+1', xlfrsR1C1); Result := Template.EvaluateAt(2, 2); if Result.Status = xlfeOk then UseValue(Result.Value); Options := XLSDefaultFormulaEvaluationOptions; Options.MaxEvaluationSteps := 10000; Result := Template.EvaluateAtWithOptions(20, 4, Options);
Lxcalc::_di_IXLSFormulaEvaluationTemplate evalTemplate =
sheet->CreateFormulaEvaluationTemplate(1, 1,
WideString(L"=ROW()+COLUMN()"), Lxcalc::xlfrsA1);
Lxcalc::TXLSFormulaEvaluationResult result =
evalTemplate->EvaluateAt(7, 8);La API directa del backend de expresiones regulares documenta el emparejamiento, el reemplazo, los estados y los presupuestos por instancia del llamador
Las fórmulas REGEX comparten los controles de trabajo, memoria y cancelación del contexto de evaluación vigente, incluidas las asignaciones de workspace y de salida de PCRE2; una cancelación o un límite de recursos produce un estado explícito sin un resultado parcial de extracción o reemplazo
GROUPBY y PIVOTBY resumen arreglos separados o instantáneas de rangos de hoja de cálculo en el contexto vigente, incluidos los entornos Lambda capturados, los índices de agrupamiento, los vectores de callback y el almacenamiento de salida; los límites de recursos y la cancelación devuelven estados explícitos sin cambiar los datos, las cachés ni el diseño de la hoja de cálculo