Miembros adicionales de la API de la biblioteca
Esta página completa la referencia de los tipos públicos que dan soporte a las API principales de libros, hojas de cálculo, renderizado, importación, diagnósticos y visor, pero que no requieren una guía independiente orientada a tareas
Filtrado y formato condicional
TXLSAutofilter | Add, AddAutofilterData, AssignFrom, Cleary ParseAutofilterData editan o importan la definición del filtro; SetRangeBounds(ARow1, ACol1, ARow2, ACol2) restaura los límites inclusivos de base uno sin eliminar los criterios cargados ni las formas de los desplegables, e ignora los límites no positivos o invertidos y un recuento de columnas que difiera de los campos cargados; Defined, FirstRow, FirstCol, LastCol, LastRowy FieldCount exponen sus límites activos y el recuento de columnas filtradas |
TXLSAutofilterItem | Shape expone el dibujo del botón de filtro asociado al elemento, y el criterio de filtro cargado está disponible como un registro operando TXLSAutofilterDOPER — DataType selecciona la forma del operando y grbitSgn lleva los bits de signo y de banderas — para su inspección o su edición round-trip |
TXLSDataBarSpec | AxisColor, AxisIsThemeColor, AxisThemeColorId, AxisThemeColorTint, y ClearAxisThemeColor controlan el eje; Direction, GradientFill, NegativeBarBorderColorSameAsPositive, NegativeBarColor, NegativeBarColorSameAsPositivey NegativeBorderColor controlan la apariencia de la barra; IsIndexedColor, IndexedColorIndexy ClearIndexedColor gestionan el color de barra de índice de paleta |
TXLSIconSetSpec | ThresholdEqualsInclude selecciona la comparación inclusiva o exclusiva para cada umbral de icono |
TXLSCfValue | IsIndexedColor y IndexedColorIndex informan de un color de umbral almacenado como índice de paleta heredado, ClearIndexedColor elimina de nuevo esa forma, y los colores de tema o literales siguen disponibles a través de los descriptores de acceso existentes |
TXLSCfValue, TXLSDataBarSpec, TXLSColorScaleSpec, TXLSIconSetSpecy TXLSDxfStyle aceptan AttachWriteGuardOwner, que vincula el objeto de regla a su libro de trabajo propietario para que las ediciones adquieran automáticamente un bloqueo de escritura; el propietario implementa TXLSCondFormatWriteGuardOwner, cuyo único método AcquireWriteGuard entrega a la regla el bloqueo de escritura del libro. TXLSDxfStyle añade FontColorIndex con FontColorIsIndexed , además de los pares FillFgColorIndex / FillFgColorIsIndexed y FillBgColorIndex / FillBgColorIsIndexed para colores de regla indexados de paleta, y las invalidaciones de fuente diferencial FontName, FontSizey FontScheme (cadena vacía, un tamaño en puntos o una ranura de fuente del tema como major / minor) junto a los miembros existentes de negrita, cursiva, subrayado y color; cada asignación adquiere el bloqueo de escritura y marca la regla como dirty para su reemisión
TXLSConnections, TXLSDataTablesy TXLSQueryTables exponen OnAcquireWriteGuard (tipo TXLSConnectionAcquireWriteGuard, TXLSDataTableAcquireWriteGuardy TXLSQueryTableAcquireWriteGuard), el enlace que sus rutas de edición usan para obtener el IXLSWorkbookWriteGuard del libro propietario antes de modificar y para hacer avanzar la generación del libro después; el bloqueo registra StartGenerationy Complete marca la escritura como terminada para que las cachés dependientes puedan recompilarse
Las conexiones de datos preservadas llevan una descripción con tipo: TXLSConnectionKind (xlckUnknown, xlckOdbc, xlckDao, xlckFile, xlckWeb, xlckOleDb, xlckText, xlckAdo) clasifica la conexión, TXLSConnectionCredentials (xlccIntegrated, xlccNone, xlccStored, xlccPrompt) registra su modo de autenticación, y cada valor de parámetro de conexión se etiqueta con TXLSConnectionParameterValueKind (xlcpvNone, xlcpvBoolean, xlcpvDouble, xlcpvInteger, xlcpvString, xlcpvCell). Las tablas de datos What-if informan de su tipo de definición almacenada mediante TXLSDataTableKind
Tablas de datos What-if y agrupación de tablas dinámicas
TXLSDataTable | Assign, ContainsCelle IsRoot copian e inspeccionan una tabla; Kind, FirstRow, FirstCol, LastCol, LastRow, AlwaysCalculate, ColumnInputCol, ColumnInputRow, ColumnInputDeleted, RowInputCol, RowInputRowy RowInputDeleted exponen la definición de cálculo almacenada |
TXLSDataTables | Add, AddExisting, Delete, Clear, Assign, AdjustForShifty Offset mantienen la colección; FindByCell y FindRoot localizan la tabla que contiene una celda determinada o que tiene en ella su raíz; Count, Itemsy OnChange exponen el estado de la colección |
TXLSPivotCacheField | GroupBaseField y GroupParentField exponen las relaciones entre un campo agrupado y su campo de origen o primario |
Los umbrales de conjuntos de iconos se pueden renderizar o validar por programa: XLSCfIconSetCount informa de cuántos iconos define un TXLSIconSetType , y XLSBuildCfIconGeometry rellena un TXLSCfIconGeometry con las primitivas (TXLSCfIconPrimitive, tipo TXLSCfIconPrimitiveKind: cfipPolygon, cfipEllipse, cfipRect, cfipLine) y los puntos (TXLSCfIconPoint) que dibujan un icono, de modo que los renderizadores personalizados coincidan con las formas de icono integradas de Excel
Diagnósticos, trazado de fórmulas y validación
TXLSDiagnostic | Code, NativeCode, Message, Severity, ExceptionClass, PartName, RecordId, SheetIndex, SheetNamey StreamOffset identifican un diagnóstico de analizador, escritor o paquete |
TXLSDiagnostics | Add anexa un diagnóstico, Clear restablece la colección y Count junto con Items enumeran sus entradas |
TXLSDiagnosticSeverity and TXLSDiagnosticOperation | TXLSDiagnosticSeverity (xlsDiagnosticInfo, xlsDiagnosticWarning, xlsDiagnosticError, xlsDiagnosticFatal) clasifica un diagnóstico y TXLSDiagnosticOperation (xlsOperationNone, xlsOperationOpen, xlsOperationSave, xlsOperationCalculate, xlsOperationExport) nombra la fase que lo produjo; los controladores de OnDiagnostic leen ambos a partir del TXLSDiagnostic |
TXLSFormulaDebugSession | CurrentStep, DependencyCount, NodeCounty StepCount exponen la instantánea actual del depurador y los tamaños de su traza |
TXLSFormulaTracer | StepCount informa del número de pasos de evaluación registrados |
TXLSImportCheck | AddRule, AddUniqueRuley AddCrossColumnRule configuran predicados de columna, unicidad compuesta y comparaciones tipadas; Check devuelve infracciones estructuradas a partir de los valores almacenados de la hoja y de las cachés de fórmulas, sin recálculo ni materialización de celdas empaquetadas; HeaderRow, FirstRow, LastRow, OnVerifyCell, ViolationCounty Violation exponen límites, devoluciones de llamada y resultados; Annotatey KeepOnlyViolations son operaciones explícitas de libro de corrección; vea esquemas de validación de importación para tipos, límites, sistemas de fechas, identidad de tupla y comportamiento de fallos |
Esquemas de validación de importación
TXLSImportCheck de lxImportCheck valida una TXLSXWorksheet contra reglas propiedad de la aplicación; examina los valores escalares almacenados y los resultados de fórmulas almacenados, con coordenadas de hoja de base uno y sin conversión implícita de texto a número, de texto a fecha o de texto a Boolean
Validator := TXLSImportCheck.Create;
try
Validator.HeaderRow := 1;
Rule := Validator.AddRule(2);
Rule.Name := 'quantity';
Rule.Flags := [irRequired, irValueType, irValueRange];
Rule.ValueKind := ivkInteger;
Rule.MinimumValue := 1;
Rule.MaximumValue := 1000;
Validator.AddUniqueRule([1, 3]).Name := 'account-and-region';
Validator.AddCrossColumnRule(4, 5, icLessOrEqual).Name := 'start-before-end';
FailureCount := Validator.Check(Sheet);
if FailureCount > 0 then
Validator.Annotate(Sheet, 'Import validator');
finally
Validator.Free;
end;HeaderRow > 0 empieza a comprobar en la fila siguiente y prevalece sobre FirstRow; en caso contrario FirstRow es 1 por defecto; LastRow = 0 usa la última fila usada de la hoja, mientras que un LastRow positivo puede incluir celdas ausentes sin crearlas; las columnas deben estar entre 1 y 16,384 y los límites activos de filas de datos entre 1 y 1,048,576
Reglas de columna y tipos explícitos
TlxImportColumnRule | Column, Flags, Name, Title, MinLength, MaxLength, Pattern, ValueKindy DateSerialMode configuran una columna; MinimumValue, MaximumValue, HasMinimum, HasMaximum, MinimumInclusivey MaximumInclusive configuran los límites; Validate comprueba la configuración del esquema y PreparePattern prepara el regex; las dos sobrecargas de Check devuelven un Boolean con un mensaje de error y, opcionalmente, un TlxImportViolationKind |
TlxImportRuleFlags | irRequired, irTextLength, irPattern, irUniquey irCallback conservan sus comprobaciones existentes; irValueType activa ValueKind y irValueRange activa los límites configurados; una columna sin banderas no se comprueba |
TlxImportValueKind | ivkAny acepta valores escalares finitos admitidos, ivkNumber acepta Variants numéricos finitos, ivkInteger exige además un valor entero, ivkDate acepta Variants de fecha o seriales de Excel activados explícitamente, ivkBoolean exige un Variant Boolean y ivkText exige un Variant de cadena |
TlxImportDateSerialMode | idsNone es el valor predeterminado y mantiene los valores numéricos distintos de las fechas; idsExcel1900 y idsExcel1904 interpretan explícitamente los valores numéricos de una columna que usa irValueType con ValueKind = ivkDate |
AddRule(Column) reemplaza y libera cualquier regla previa de esa columna; los predicados por valor de tipo, rango, longitud y patrón se saltan los valores ausentes, los nulos y las cadenas vacías, mientras que irRequired los reporta; la unicidad conserva las políticas diferenciadas que se describen abajo; el espacio en blanco no vacío sigue siendo un valor; un número no cuenta como Boolean, una fecha no cuenta como número ordinario y una cadena de aspecto numérico sigue siendo texto
Asignar MinimumValue o MaximumValue activa ese límite; tanto HasMinimum como HasMaximum pueden desactivarlo de nuevo; ambos conmutadores de inclusividad son True por defecto; los límites deben ser números o fechas tipados finitos, y dos límites deben ser comparables y describir un intervalo no vacío; los límites invertidos, ausentes, incompatibles o vacíos elevan una excepción antes de que empiece la validación de la hoja
Los límites numéricos comparan valores numéricos y los límites de fecha comparan fechas; las comparaciones entero con entero conservan todos los bits de Int64 y UInt64; los valores de una categoría incompatible fallan la comprobación de rango; los predicados de longitud de texto y regex siguen inspeccionando la representación textual del escalar, y las comprobaciones regex conservan el comportamiento existente de IsMatch, así que use anclas como ^...$ cuando deba coincidir el texto completo; un regex no válido desactiva su comprobación de patrón por compatibilidad
Valores de Excel con formato de fecha
Una celda importada de Excel puede contener un serial numérico aunque su formato numérico muestre una fecha; elija un modo de serial explícitamente cuando ese sea el esquema de importación aceptado; el modo afecta solo a la validación y nunca cambia el valor almacenado de la celda
Rule := Validator.AddRule(4); Rule.Flags := [irRequired, irValueType, irValueRange]; Rule.ValueKind := ivkDate; if Sheet.Workbook.Date1904 then Rule.DateSerialMode := idsExcel1904 else Rule.DateSerialMode := idsExcel1900; Rule.MinimumValue := VarFromDateTime(EncodeDate(2026, 1, 1)); Rule.MaximumValue := VarFromDateTime(EncodeDate(2026, 12, 31));
VarFromDateTime se declara en Variants y EncodeDate en SysUtils; los seriales numéricos deben ser no negativos y resolverse antes del 1 de enero del año 10000; los seriales fraccionarios conservan su hora del día; el sistema de 1900 rechaza todo serial desde el 60 inclusive hasta el 61 exclusivo porque ese intervalo denota el día bisiesto ficticio; el sistema de 1904 mapea el serial cero al 1 de enero de 1904
Los límites de fecha incluyen la hora del día, de modo que un máximo fijado a medianoche del 31 de diciembre excluye las horas posteriores de ese día; use un límite superior exclusivo en el 1 de enero del año siguiente cuando deba aceptarse el día final completo; las fechas textuales como 10/08/2026 siguen siendo texto sin importar el modo de serial configurado
Unicidad compuesta y comparaciones entre columnas
AddUniqueRule(const AColumns: array of Integer): TlxImportUniqueRule | Añade una restricción de tupla independiente sobre una lista ordenada y no vacía de columnas distintas; Name identifica la regla, Title prefija su mensaje, ColumnCount y el Columns[Index] de base cero exponen sus miembros, y SkipIncompleteRows es True por defecto |
AddCrossColumnRule(ALeftColumn, ARightColumn: Integer; AComparison: TlxImportComparison): TlxImportCrossColumnRule | Añade una comparación de la misma fila con LeftColumn y RightColumn de solo lectura, y Comparison, Name, Titley SkipBlankValues editables, cuyo valor predeterminado es True |
TlxImportComparison | icEqual, icNotEqual, icLess, icLessOrEqual, icGreatery icGreaterOrEqual seleccionan la relación; los pares numéricos y de fecha comparan sus valores, los pares Boolean ordenan False antes que True, y los pares de cadena comparan unidades de código UTF-16 ordinalmente con distinción de mayúsculas |
Las claves compuestas conservan el tipo Variant exacto y la identidad textual de cada miembro; Integer(1), Double(1), la cadena '1', un Boolean y una fecha son miembros distintos; no hay plegado de mayúsculas, normalización Unicode, análisis de configuración regional ni ambigüedad de delimitadores; combinaciones como ('ab', 'c') y ('a', 'bc') siguen siendo diferentes; cada pasada de validación inicia un índice de tuplas nuevo
Cuando SkipIncompleteRows = True, un miembro ausente, nulo o de cadena vacía excluye esa fila de la unicidad de tuplas; fijarlo en False incluye esos miembros con sus identidades Variant originales; un duplicado reporta la primera columna de la tupla como dirección de celda y la primera fila coincidente a través de FirstDuplicateRow
El irUnique de una sola columna existente conserva su comportamiento de coincidencia basado en texto y sin distinción de mayúsculas, y se salta los valores ausentes o nulos; use AddUniqueRule([Column]) cuando se exija identidad tipada estricta para una columna
Las comparaciones entre columnas nunca fuerzan cadenas a números, números a Boolean ni números ordinarios a fechas; las categorías mixtas incompatibles fallan incluso con icNotEqual; las comparaciones de cadena distinguen Unicode compuesto y descompuesto, preservan caracteres nulos embebidos y usan ordenación de prefijo corto primero; cuando SkipBlankValues = False, cualquier operando en blanco produce una infracción entre columnas
Resultados estructurados y libros de corrección
TlxImportViolation | Row, Col, SheetNamey Address identifican la celda, con Address en notación A1; ValueTexty ErrorText transportan información de visualización; RuleNamey Kind identifican la regla configurada y la categoría de fallo; RelatedColumn identifica el segundo operando de un fallo entre columnas y FirstDuplicateRow identifica la fila original en los fallos de unicidad |
TlxImportViolationKind | ivRequired, ivTextLength, ivPattern, ivUnique, ivCallback, ivValueType, ivValueRange, ivCellError, ivFormulaCacheMissing, ivCompositeUniquey ivCrossColumn distinguen las categorías de fallo admitidas |
Check(Sheet) devuelve el número de infracciones, y ViolationCount más el Violation(Index) de base cero enumeran el informe; una regla de columna reporta su primer predicado fallido, mientras que las reglas de tupla y de comparación configuradas de forma independiente pueden añadir más infracciones para la misma celda; asigne valores Name significativos cuando los llamadores necesiten identificadores estables de reglas de aplicación
Las celdas de fórmula se validan usando sus valores en caché almacenados; una fórmula sin resultado en caché almacenado reporta ivFormulaCacheMissing, y un resultado de error reporta ivCellError; recalcule explícitamente antes de comprobar cuando se necesiten resultados frescos de fórmulas; la validación no accede a fuentes externas, no altera definiciones de fórmulas ni evalúa fórmulas sin caché
OnVerifyCell conserva la firma de devolución de llamada TlxImportVerifyCell y se ejecuta tras los predicados de columna aplicables correctos y las comprobaciones de unicidad; devuelve un Boolean y puede fijar un mensaje de error de la aplicación; las devoluciones de llamada deben mantener el libro y el esquema de validación sin cambios, y las escrituras del libro son rechazadas por el lease de lectura; las excepciones de la devolución de llamada se propagan y el lease se libera para operaciones posteriores
Check nunca anota, borra filas ni materializa valores empaquetados; use Annotate después de comprobar para aplicar fuentes rojas y anexar texto de error a los comentarios existentes, o llame explícitamente a KeepOnlyViolations para eliminar las filas sin infracciones y crear un libro de corrección; estos métodos modifican la hoja suministrada, así que llámelos sobre el libro previsto tras revisar el informe
La validación toma prestadas la hoja y el libro para la llamada síncrona; no adopta la propiedad de los objetos del llamador ni exige un libro propiedad de una interfaz; un lease de lectura protege las instantáneas de celdas almacenadas pertinentes y el acceso a la caché de fórmulas almacenada durante toda la comprobación
Directivas de guardado de vínculos externos
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);
property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
xluPromptUser; xluNever y xluAlways solo cambian la preferencia de actualización almacenada en el libro y nunca autorizan ni inician el acceso a archivos externos o a la red
Auditoría de cálculo y sugerencias del libro
function TXLSWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.RunCalculationAudit(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.FormulaIsVolatile(Formula: WideString): Boolean;
function TXLSWorkbook.AuditOverlayHash(SheetIndex, Row, Col: Integer): Integer;
function TXLSWorkbook.AuditOverlayRead(SheetIndex, Row, Col: Integer; var Value: Variant): Boolean;
procedure TXLSWorkbook.AuditOverlayWrite(SheetIndex, Row, Col: Integer; const Value: Variant);
procedure TXLSWorkbook.AuditOverlayClear;
TXLSCalculationAuditIssueKind = (xlcaiCacheMismatch, xlcaiParseFailure,
xlcaiMissingFunction, xlcaiMissingName, xlcaiUnsupportedArguments,
xlcaiCircularReference, xlcaiExternalReferenceDenied,
xlcaiExternalReferenceMissing, xlcaiDataTableSkipped, xlcaiCancelled,
xlcaiInternalFailure);
TXLSCalculationAuditIssue = record
Kind: TXLSCalculationAuditIssueKind;
SheetIndex: Integer;
SheetName: WideString;
Row: Integer;
Col: Integer;
Formula: WideString;
Symbol: WideString;
Expected: Variant;
Actual: Variant;
ResultCode: Integer;
Stack: WideString;
ExternalTarget: WideString;
end;
TXLSCalculationAuditIssues = array of TXLSCalculationAuditIssue;
TXLSRecalcAuditProgress = procedure(ASender: TObject;
ACurrent, ATotal: Integer; var ACancel: Boolean) of object;
property WorkbookCodeName: WideString;
property CalculationThreadMode: TXLSCalculationThreadMode;
property ForceFullCalculationState: TXLSOptionalBooleanState;
property RefreshAllOnLoadState: TXLSOptionalBooleanState;
RecalcAndVerify combina los fallos de símbolos de fórmulas y las discrepancias de valores en caché en categorías estructuradas estables, con coordenadas de hoja de cálculo, fórmulas, símbolos, valores esperados y reales, y truncamiento acotado, sin alterar las cachés ni la semántica del libro. RecalcAndVerifyEx ejecuta la auditoría profunda: evalúa cada fórmula una vez a través del grafo de dependencias dentro de una capa de resultados aislada, de modo que las celdas dependientes leen esta pasada en lugar de cachés obsoletas; clasifica los fallos de evaluación (argumentos no admitidos, referencias circulares, referencias externas denegadas o ausentes, tablas de datos omitidas, cancelación, fallos internos) con códigos de resultado, registra una pila de llamadas acotada por cada fallo, respeta un presupuesto de incidencias y un receptor de progreso/cancelación, y permanece en solo lectura salvo que ApplyResults confirme de forma atómica los valores recalculados tras una pasada completamente correcta sobre una estructura de libro sin cambiosAbsoluteTolerance y RelativeTolerance controlan la notificación de discrepancias, no los valores intermedios de cálculo ni la aplicación explícita de cachés
Para resultados numéricos, una discrepancia exige una diferencia absoluta superior a AbsoluteTolerance y, cuando la tolerancia relativa está habilitada, superior a RelativeTolerance * max(abs(Expected), abs(Actual))
La igualdad en cualquiera de los dos umbrales se tolera; los valores modificados entran igualmente en la superposición de la auditoría para que las fórmulas dependientes vean el cálculo actual, y ApplyResults confirma esos valores aunque sus diferencias no sean notificables
Una auditoría de solo lectura nunca altera las cachés almacenadasTXLSCalculationAuditReport.Issues es un TXLSCalculationAuditIssue; Kind selecciona una de las categorías xlcai* , Expected / Actual transportan los valores comparados en las discrepancias de caché, Stack es la cadena de llamadas de evaluación acotada que se muestra como Sheet!A1 > Sheet!B2 (el marco más externo primero), y ExternalTarget describe el libro externo en las incidencias de referencias externas. TXLSRecalcAuditOptions.OnProgress es un receptor TXLSRecalcAuditProgress que recibe el progreso de nodos ACurrent / ATotal y puede establecer ACancel para detener la auditoría en el siguiente límite de nodo con una única incidencia xlcaiCancelled issueRunCalculationAudit es el punto de entrada del motor al que delegan los envoltorios de auditoría de nivel de libro, y acepta el mismo registro de opciones. FormulaIsVolatile informa de si una fórmula forzaría un recálculo en cada pasada (llamadas como NOW, RAND, TODAY, OFFSET, INDIRECT, o una referencia no resoluble)AuditOverlayWrite almacena un valor de reemplazo para una celda (índice de hoja de base uno, fila y columna de base cero, según la convención del calculador), AuditOverlayRead y AuditOverlayHash la consultan, y AuditOverlayClear vacía la capa. Los valores superpuestos los devuelven los getters normales de valor de celda, de modo que el recálculo y la auditoría profunda los observan sin mutar las celdas de la hoja de cálculo; al limpiar la capa se restauran los valores almacenadosEstado de fórmulas de tabla y de IME
property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
SaveExternalLinkValues en False omite los registros clásicos XCT y CRN o el subárbol sheetDataSet del libro externo XLSX, conservando los destinos de vínculos, los nombres de hoja, los nombres definidos externos, las relaciones, las referencias de fórmulas, el XML desconocido y la caché en memoria; restaurar la propiedad a True en el mismo libro puede serializar de nuevo esa caché retenida
Inspección y eliminación de paneles de tareas de complementos web
function IXLSWorkbook.HasWebAddinTaskPanes: Boolean;
function IXLSWorkbook.WebAddinTaskPaneCount: Integer;
function IXLSWorkbook.RemoveWebAddinTaskPanes: Integer;
function TXLSXWorkbook.HasWebAddinTaskPanes: Boolean;
function TXLSXWorkbook.WebAddinTaskPaneCount: Integer;
function TXLSXWorkbook.RemoveWebAddinTaskPanes: Integer;
1303 y generan una excepción antes de la mutación, mientras que el XLS clásico y ODS devuelven False, 0y -1 sin examinar el paquete
Directiva de visualización de objetos del libro
TXLSObjectDisplayMode = (xlsodmShowAll, xlsodmShowPlaceholders,
xlsodmHideAll);
property IXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSXWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSPaginationModel.ExportObjectPlaceholders: Boolean;
property TXLSPDFExport.ExportObjectPlaceholders: Boolean;
property TXLSSvgExport.ExportObjectPlaceholders: Boolean;
property TXLSPageImageExporter.ExportObjectPlaceholders: Boolean;
property TXLSPrintDocument.ExportObjectPlaceholders: Boolean;
property TXLSXHtmlExportOptions.ExportObjectPlaceholders: Boolean;
workbookPr.showObjects; los valores ausentes toman xlsodmShowAllcomo predeterminado, las cargas útiles reservadas del formato clásico que no se modifican y los tokens XLSX no admitidos permanecen sin pérdidas, y las asignaciones explícitas emiten solo valores canónicos
ExportObjectPlaceholders solicita la misma política de bajo coste sin decodificar cargas de imágenes ni construir escenas de gráficos
xlsodmHideAll impide la colección de dibujos y la expansión de rangos dirigida por objetos antes de que comience el renderizado; la conversión de libros transporta los tres estados, ODS escribe dibujos completos para el modo placeholder y omite la salida de dibujos y de medios para el modo hide-all, y los fondos de hojas de cálculo permanecen independientes
Valores e instantáneas de calibración de renderizado
TXLSRenderCalibration = record
WidthCorrection: Double;
HeightCorrection: Double;
LineSpacing: Double;
CellMarginFactor: Double;
ScreenScaling: Integer;
MeasurementDpi: Integer;
end;
function XLSDefaultRenderCalibration: TXLSRenderCalibration;
function XLSValidateRenderCalibration(const AValue: TXLSRenderCalibration;
out AInvalidField: TXLSRenderCalibrationField): Boolean;
1, 1, 1, 1, 100y 96; las correcciones de ancho y alto deben ser mayores que cero y menores que dos, el interlineado está acotado a (0, 4], los márgenes de celda a [0, 4], el escalado de pantalla a [100, 500] por ciento y los DPI de medición a [36, 2400]RenderCalibration, CaptureRenderCalibrationy ResetRenderCalibration ; la asignación del registro completo valida antes de la mutación y cada captura devuelve una instantánea de valores independiente e inmutable por convención para una operación de renderizado
Geometría de renderizado y medición de fuentes
TXLSRenderGeometryBackend = (xlsrgbAutoFit, xlsrgbPagination, xlsrgbPdf,
xlsrgbSvg, xlsrgbBitmap, xlsrgbPrintPreview, xlsrgbViewer, xlsrgbHtml);
TXLSRenderFont = record
Name: WideString;
Size: Double;
Styles: TXLSRenderFontStyles;
Charset: Byte;
end;
function CreateXLSRenderGeometry(
const ACalibration: TXLSRenderCalibration;
AWorkbookGeneration: UInt64;
ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
property TXLSHTMLExport.RenderGeometry: IXLSRenderGeometry;
property TXLSXHtmlExportSession.RenderGeometry: IXLSRenderGeometry;
IXLSRenderGeometry posee una calibración inmutable, una generación de libro, una identidad de back-end, un servicio de medición y una caché acotada de métricas local de la operación; CreateXLSRenderGeometry usa GDI, mientras que CreateXLSPortableCairoRenderGeometry de lxPortableCairo usa bytes de fuente explícitos con FreeType/HarfBuzz en Linux o macOS nativos; MeasureText devuelve el ancho en píxeles, el alto, el alto de línea, el ascenso, el descenso y el número de líneas, mientras que MaximumDigitWidthPixels, ColumnWidthToPixels, PixelsToColumnWidth, PointsToPixels, PixelsToPointsy UsableCellWidthPixels proporcionan las conversiones de geometría compartidas
MarkSheet en dos fases, mientras que TXLSPaginationModel.Build captura un servicio para el RenderBackendseleccionado; los puntos de entrada de PDF, SVG, mapa de bits, vista previa de impresión, visor de libros y HTML seleccionan su propio back-end antes de la salida, cambiar la calibración del libro no puede mutar una instantánea existente y la salida no escribe las dimensiones de la hoja de cálculo
xlsrgbHtml nuevo, mientras que una TXLSXHtmlExportSession incremental captura una vez en BeginExport y reutiliza esa instantánea para todas las hojas; ambos exportadores exponen el servicio retenido a través de RenderGeometry para diagnósticos de calibración y de caché
IXLSRenderGeometry properties WorkbookGeneration, CacheCapacityy CacheEntryCount informan de la generación enlazada y el llenado de la caché para diagnósticos, y ImplicitWidthMaximumDigitWidthPixels devuelve la medición del ancho de dígito que subyace a la emulación de anchos de columna implícitos
MeasureText rellena un registro TXLSRenderTextMetrics (ancho en píxeles, alto, alto de línea, ascenso, descenso y número de líneas) a partir de un TXLSRenderFont cuyo miembro Styles es un conjunto de marcas TXLSRenderFontStyle (negrita, cursiva, subrayado, tachado)
Importación, generación de código, comparación y supervisión
TXLSHTMLImport | LoadFromHTML importan contenido de tablas HTML de un flujo o archivo a una hoja de cálculo, con coordenadas de inicio, selección de tabla y separador decimal opcionales |
TXLSCodeGen | Language (tipo TlxCodeGenLanguage: lcgDelphi o lcgCppBuilder) selecciona el dialecto fuente de las sentencias generadas, GenerateToList escribe el código de libro generado en una lista de cadenas, y TlxCodeGenOptions amplía la salida con combinaciones de celdas, anchos de columna o formatos numéricos (cgoMerges, cgoColumnWidths, cgoNumberFormats; las hojas y las celdas siempre se emiten) |
TXLSXWorkbookCompare | Compare compara celdas almacenadas tipadas, texto de fórmulas, presencia de hojas y combinaciones; Options añade cachés de fórmulas, estilos base de celda y geometría de filas o columnas, SetNumericTolerance configura la igualdad numérica, y Count, Diffy Report exponen los resultados ordenados; vea comparación de libros |
TXLSFileMonitor | IntervalMs selecciona el intervalo de sondeo y SynchronizeEvent selecciona la entrega sincronizada de devoluciones de llamada; un controlador de OnFileChanged puede desactivar o destruir el monitor, o cambiar FileName para empezar a vigilar otro archivo |
TXLSCSVLoader and TXLSCSVSaver | El loader analiza texto delimitado en una cuadrícula en memoria de Variants — ParseFile y ParseStream rellenan la cuadrícula, y CellValue, RowCounty ColCount la leen de vuelta — con separador (ValueSeparator) y codificación (TXLSCsvEncoding: ANSI del sistema, UTF-16, UTF-8) autodetectados, y una promoción de tipos opcional controlada por DetectTypes y por entradas ColumnTypes por columna (TXLSCsvColumnType: auto, text, number, date, boolean, skip); SkipRows, AutoTrim, LocaleTolerantNumbersy FieldWidths refinan el manejo de ancho fijo y de configuración regional. TXLSCSVSaver.SaveAs escribe la cuadrícula de vuelta con entrecomillado RFC 4180, y QuoteAllStrings fuerza el entrecomillado; TXLSTSVSaver deriva del saver para la salida separada por tabuladores |
Comparación de libros
TXLSXWorkbookCompare de lxCompare compara dos instancias de TXLSXWorkbook sin recalcular fórmulas ni modificar ninguno de los dos libros; las hojas se emparejan por nombre sin distinción de mayúsculas, y cambiar solo el orden de las hojas no produce ninguna diferencia
El valor predeterminado de Options está vacío y ambas tolerancias son cero por defecto; la comparación predeterminada reporta hojas añadidas o eliminadas, celdas almacenadas añadidas o eliminadas, valores literales tipados modificados, texto de fórmulas modificado y rangos combinados añadidos o eliminados
La comparación de literales distingue números, texto, valores Boolean, fechas, errores y blancos: el número 1 difiere del texto '1', un Boolean difiere de su grafía textual, las fechas conservan su propio tipo y los errores se comparan por su código de error almacenado; los tipos de almacenamiento numérico con valores iguales comparan igual, mientras que los valores Int64 distintos siguen siendo distintos durante la comparación exacta
lcoFormulaCachedResults | Para celdas con el mismo texto de fórmula, compara el resultado en caché existente y distingue una caché ausente o invalidada de una caché disponible; las cachés cargadas y calculadas con el mismo valor tipado comparan igual |
lcoCellStyles | Compara los estilos base resueltos en las coordenadas coincidentes de celdas almacenadas, incluidas fuentes, rellenos, degradados, bordes, alineación, formatos numéricos y protección de celda; el orden de inserción del pool de estilos no relacionado no crea diferencias, y los colores de tema se resuelven contra el tema actual de cada libro |
lcoAxisGeometry | Compara los altos de fila efectivos, los anchos de columna, las banderas de ocultación, los niveles de esquema, las banderas de colapso y los valores predeterminados de la hoja; un tamaño explícito igual al predeterminado efectivo compara igual que un tamaño implícito |
lcoDefinedNames | Compara los nombres con ámbito de libro y de hoja, sus definiciones de fórmula, visibilidad, comentarios y banderas de macro; el ámbito sigue a los nombres de hoja, y el orden de inserción no crea diferencias |
lcoDataValidations | Compara las definiciones de validación en el orden almacenado, incluidos los rangos destino normalizados, las fórmulas, los operadores, los prompts, los mensajes de error y las banderas de control; cambiar el orden de los rangos destino dentro de una definición no crea una diferencia |
lcoConditionalFormats | Compara las definiciones de formato condicional en el orden almacenado, incluidas la prioridad efectiva, el comportamiento stop-if-true, los rangos destino, las fórmulas, los estilos diferenciales y los ajustes admitidos de escala de color, data bar e icon set; los identificadores del pool de estilos y de la paleta indexada se resuelven a sus valores semánticos |
lcoTables | Empareja las tablas por nombre y compara rangos, encabezados, totales, ajustes de estilo, comentarios, nombres de columna, etiquetas, fórmulas, banderas de array, nombres únicos, nombres de conexión, criterios de filtro y condiciones de ordenación; los IDs de tabla, de columna y el orden de inserción no crean diferencias, mientras que los IDs de estilo diferencial de filtro de color y de ordenación se resuelven a apariencia |
lcoDrawings | Compara las definiciones tipadas de dibujo en el orden de dibujo, conservando el orden hijo-grupo y el orden de grupos de trazado del gráfico; las definiciones canónicas admitidas cubren imágenes, cuadros de texto, gráficos, grupos, vistas tipadas completas de slicers y vistas tipadas de timelines, y los nodos de dibujo opacos o no admitidos elevan EXLSSemanticSnapshot |
lcoBlankStyleRegions | Compara los estilos base resueltos en las coordenadas sin celda almacenada en ninguno de los dos lados, incluidos los valores predeterminados de la hoja y las superposiciones virtuales de estilo; las subdivisiones de rectángulo equivalentes comparan igual, y los cambios adyacentes iguales se fusionan en rectángulos sin materializar celdas |
lcoRichTextRuns | Compara las fuentes y el texto efectivos de los runs en las celdas de texto almacenadas coincidentes, hereda la fuente base para las propiedades de run omitidas, ignora los runs vacíos y fusiona los runs adyacentes con fuentes efectivas iguales; el texto plano coincide con un run de texto enriquecido equivalente con la fuente predeterminada |
lcoPivotTables | Empareja las definiciones tipadas de tablas dinámicas por nombre y compara los enlaces de origen, el diseño, los campos, los miembros ordenados de la vista, las agregaciones de datos, los filtros, las referencias de agrupación, las definiciones calculadas, los estilos y las banderas de materialización nativa; los IDs de caché y de miembros compartidos se resuelven a identidades y valores tipados del origen |
lcoPivotCaches | Empareja las definiciones tipadas locales de PivotCache por identidad de origen y compara los metadatos de refresco, los metadatos de campo, las etiquetas y rangos agrupados, los dominios desordenados de miembros compartidos y los valores tipados ordenados de los registros; los miembros numéricos, de texto, Boolean, de fecha, de error y vacíos siguen siendo distintos, las fechas conservan la precisión binary64, y los IDs de caché y el orden de ranuras de miembros compartidos no crean diferencias |
lcoSlicerState | Empareja las vistas y cachés de slicers nombradas, incluidos los enlaces a columnas de tabla o Pivot no OLAP, los nombres de tablas dinámicas conectadas, las selecciones tipadas de miembros, los ajustes de filtro cruzado y de ordenación, el título, la posición de desplazamiento, el diseño de columnas, las dimensiones, el estilo, las banderas de bloqueo y de título, y la geometría de ancla; los enlaces resuelven IDs de tabla, columna, hoja y caché |
lcoTimelineState | Empareja las vistas tipadas de timelines nombradas y las cachés locales no OLAP, incluidos los enlaces de campo de origen y de tablas dinámicas conectadas, la selección de fechas activa, el título, el nivel y los límites de la hoja; las selecciones inactivas omiten los extremos de fecha sin usar |
Options es de tipo TlxCompareOptions, un conjunto de TlxCompareOption; activar una opción añade sus diferencias a la comparación predeterminada
SetFeatureLimits(MaxBytes, MaxItems) valida ambos límites positivos antes de cambiar cualquiera de los dos ajustes; MaxFeatureBytes es 64 MiB por defecto y MaxFeatureItems es 1,000,000 por defecto, y los setters individuales conservan la misma validación atómica
Los presupuestos de funciones cubren los bytes canónicos separados agregados y las entradas contadas de ambos libros, incluidos los runs de texto enriquecido, los nodos XML de filtro, los campos de Pivot, los miembros de dominio y los valores de registro, y las conexiones de slicers o timelines; los lectores comprueban los recuentos y las entradas de texto grandes antes de construir XML nativo, exigen flujos de salida acotados y elevan EXLSXSemanticBudget cuando se supera un límite
SetNumericTolerance(AbsoluteTolerance, RelativeTolerance) valida ambos argumentos antes de cambiar cualquiera de los dos ajustes; ambos deben ser finitos y no negativos, y los setters individuales AbsoluteTolerancey RelativeTolerance usan la misma validación
Los valores literales numéricos y de caché numérica comparan igual cuando su diferencia absoluta es como máximo AbsoluteTolerance o su diferencia relativa al mayor valor absoluto es como máximo RelativeTolerance; un umbral de cero conserva la igualdad exacta, el cálculo relativo evita el desbordamiento para valores opuestos extremos, y la tolerancia no fuerza texto ni se aplica a fechas, estilos o geometría
LeftNamey RightName fijan nombres de visualización opcionales que usan las líneas de Report, con lefty right por defecto; los nombres afectan solo al informe, no al emparejamiento de hojas ni a la comparación
Comparer := TXLSXWorkbookCompare.Create;
try
Comparer.Options := [lcoFormulaCachedResults, lcoCellStyles,
lcoAxisGeometry];
Comparer.SetNumericTolerance(0.001, 0.000001);
DifferenceCount := Comparer.Compare(LeftWorkbook, RightWorkbook);
for I := 0 to DifferenceCount - 1 do
begin
Entry := Comparer.Diff(I);
ReportLines.Add(Entry.Describe);
end;
finally
Comparer.Free;
end;Compare devuelve el recuento de diferencias, Count lee ese recuento después, y Diff(Index) usa indexación de base cero para devolver un TlxCompareDiff propiedad del comparador; retenga el comparador mientras lee sus entradas y vuelva a adquirir las entradas tras otra comparación correcta
Cada entrada proporciona Kind, Sheet, Rowy Col de base uno cuando procede, Ref, LeftText, RightTexty los valores tipados LeftKind / RightKind; TlxCompareValueKind contiene lcvNone, lcvBlank, lcvNumber, lcvText, lcvBoolean, lcvDateTime, lcvErrory lcvFormula, y lcvNone se usa para un lado ausente o una diferencia sin valor
TlxCompareKind conserva lckSheetAdded, lckSheetRemoved, lckCellAdded, lckCellRemoved, lckValueChanged, lckFormulaChanged, lckMergeAddedy lckMergeRemoved, y añade lckFormulaCacheChanged, lckStyleChanged, lckRowGeometryChangedy lckColumnGeometryChanged
Las diferencias de estilo transportan huellas canónicas estables del estilo en LeftTexty RightText; las diferencias de geometría transportan el tamaño, estado oculto, de esquema y de colapso comparados, con Ref identificando el intervalo contiguo del eje afectado, Row fijado a su primera fila y Col a cero para filas, o Col fijado a su primera columna y Row a cero para columnas
Las diferencias de funciones usan lckDefinedNameChanged, lckDataValidationChanged, lckConditionalFormatChanged, lckTableChanged, lckDrawingChanged, lckPivotTableChanged, lckPivotCacheChanged, lckSlicerChanged o lckTimelineChanged; Change es lccChanged, lccAdded o lccRemoved, y cada lado presente transporta su huella canónica de definición mientras que un lado ausente transporta una cadena vacía
lckRichTextChanged identifica una definición de run modificada en su coordenada de celda y transporta huellas canónicas de run en LeftTexty RightText; la tolerancia numérica se aplica a literales de celda y cachés de fórmulas, mientras que las definiciones tipadas de funciones se comparan exactamente
Las referencias de funciones identifican nombres con ámbito o nombres de tabla, o usan posiciones de secuencia de base uno para definiciones de validación, formato condicional y dibujo; insertar o mover una función ordenada puede cambiar varias posiciones, mientras que las entradas de nombres a nivel de libro tienen una Sheet vacía
lckBlankStyleRegionChanged identifica un rectángulo en blanco modificado mediante Row, Col, LastRowy LastCol inclusivos, y su Ref A1; las coordenadas almacenadas las maneja la comparación ordinaria de celdas y lcoCellStyles, así que active ambas opciones de estilo para inspeccionar juntas las celdas almacenadas y las áreas en blanco
Describe formatea una entrada, mientras que Report(List) anexa las entradas formateadas a un TStrings propiedad del llamador; un cambio de valor tipado incluye etiquetas de tipo cuando los tipos difieren, y los resultados se ordenan por nombre de hoja, fila, columna, tipo de diferencia y referencia, no por el orden de inserción de celdas
La comparación retiene leases de lectura, recorre las celdas almacenadas mediante instantáneas separadas de cursor y conserva el almacenamiento empaquetado; la geometría particiona los límites de metadatos almacenados y los tramos compactos de filas repetidas, mientras que la comparación de estilos en blanco barre los límites de rectángulos activos y de celdas almacenadas sin escanear una rejilla rectangular de un millón de filas; el trabajo crece con las funciones almacenadas, las intersecciones de regiones y las diferencias reportadas
Una comparación fallida preserva el resultado correcto anterior; la asignación de una tolerancia no válida también preserva los ajustes y el resultado existentes, mientras que pasar un libro nil borra el resultado y devuelve cero
Esta comparación cubre el contenido de celdas almacenadas de la fachada XLSX y las definiciones tipadas seleccionadas de funciones; la grafía de fórmulas de nombres, validaciones, formatos condicionales, tablas y gráficos se normaliza mediante el analizador semántico de fórmulas, mientras que las fórmulas calculadas de Pivot conservan su texto de definición almacenado
Los filtros de tabla aceptan las formas admitidas personalizadas, de lista de valores, de grupo de fechas, de color, de icono, dinámicas y de recuento superior, y las condiciones de ordenación; las columnas de filtro independientes y las entradas de conjuntos de valores normalizan su orden, los valores predeterminados Boolean y las grafías numéricas se normalizan, y el orden de las condiciones de ordenación sigue siendo significativo
La comparación tipada de Pivot, slicers y timelines resuelve los orígenes locales de hoja admitidos y los enlaces no OLAP sin refrescar ni evaluar disponibilidad; las pistas de disponibilidad nativas de slicers son metadatos de visualización derivados, mientras que las selecciones de miembros y los metadatos nativos de ordenación reconocidos sí se comparan
Las propiedades nativas opacas de dibujo, los modelos binarios incompletos de Pivot, los orígenes externos u OLAP de Pivot, los registros suplementarios en bruto de tablas dinámicas y el XML de extensión, el XML de filtro desconocido, y los atributos o hijos de extensión de slicers o timelines no modelados elevan EXLSSemanticSnapshot; la preservación de esos datos no implica equivalencia semántica
Las funciones importadas seleccionadas de tablas dinámicas y PivotCache también validan el XML nativo preservado antes de comparar la proyección tipada, incluidos los metadatos anidados de campo y los registros de caché; los namespaces, atributos, hijos y cargas de extensión desconocidos fallan explícitamente dentro de los mismos límites cooperativos de funciones, mientras que los enlaces modelados de caché de slicer siguen admitidos
TSimpleDomNode.RawName expone el QName original del elemento junto al Name normalizado por el lector, lo que permite una inspección sensible a namespaces sin cambiar la coincidencia de nombres existente del analizador
Los ajustes del libro y los metadatos opacos del paquete quedan fuera de la comparación; la comparación de estilos base no evalúa la apariencia de formatos condicionales ni de estilos de tabla, y la comparación de dibujos preserva los límites admitidos de imagen, cuadro de texto, gráfico y grupos ordenados de la instantánea semántica
Propiedades efectivas de texto enriquecido
TMsoFbtOpt.StoredPids devuelve los identificadores de propiedades OfficeArt almacenados en orden de clasificación, mientras que TMsoFbtSp.PersistentFlags expone las banderas nativas de la forma sin asignar propiedades ni anclas
TMsoShapeContainer.HasPreservedObjectData identifica los bytes de cola OBJ retenidos; HasOrdinaryEmbeddedPictureObjectData comprueba que las colas de imagen contengan solo registros reconocidos de formato de portapapeles y de banderas de imagen a cero, y rechaza los registros enlazados o desconocidos sin copiar la carga útil
TMSOShapeTextBox.HasValidTextRuns comprueba los límites de runs TXO almacenados y los campos reservados sin crear runs; TMsoDrawing.HasUnmodeledAppearance identifica los datos nativos de dibujo que el analizador tipado omite, lo que permite que la captura rechace explícitamente la apariencia sin resolver
TXLSXRichTextRun.BoldSet, ItalicSet, StrikethroughSet, UnderlineSet, VertAlignSety ColorSet distinguen las propiedades de fuente heredadas de las invalidaciones explícitas, incluidas las banderas false, none, baseline y los colores automáticos; los setters marcan la propiedad como explícita incluso cuando su valor iguala el predeterminado inicial del run nuevo
TXLSXRichText.HasUnsupportedAppearance reporta las propiedades nativas enriquecidas que el modelo tipado de runs no puede representar; la captura portable y la comparación efectiva de texto enriquecido rechazan esos runs explícitamente, mientras que las propiedades de run compartidas/inline admitidas y el espacio en blanco conservan su semántica importada
La comparación efectiva de texto enriquecido aplica las invalidaciones false explícitas antes de fusionar los runs adyacentes iguales; las propiedades heredadas y las borradas explícitamente siguen siendo distintas durante la deduplicación de cadenas compartidas y los round-trips XML admitidos
TXMLReader.ResolveNamespaceUri(Prefix, Uri) resuelve el enlace de namespace en ámbito actual sin cambiar la posición del lector, devolviendo false cuando no existe enlace; un prefijo vacío solicita el namespace predeterminado, y los QNames en bruto siguen disponibles para una inspección sensible a namespaces
Los registros inmutables de rich/scene, la extensión de origen de captura y el contrato de transferencia HXRSNP02 se describen en Salida portable sin interfaz
Inspección separada de estilos y ejes
TXLSXWorksheet.ReadSemanticCellStyle(Row, Col) devuelve un TXLSSemanticCellStyle separado para coordenadas de base uno válidas, resolviendo estilos almacenados y empaquetados, valores predeterminados de hoja, superposiciones de estilo aplicables, formatos de fecha implícitos, colores indexados y colores de tema sin materializar celdas ni cambiar los pools de estilos; la llamada pública adquiere un lease de lectura y excluye las reglas de formato condicional y de estilo de tabla
TXLSXWorksheet.GetStoredAxisSpans(IsRow) devuelve TXLSXAxisSpans, un array de registros TXLSXAxisSpan con FirstIndexy LastIndex inclusivos de base uno; reporta las huellas de metadatos de tamaño, ocultación, esquema y colapso, conserva los tramos compactos de altos de filas repetidas y deja el valor predeterminado efectivo de la hoja disponible a través de sus propiedades ordinarias
Los tramos devueltos describen huellas de metadatos almacenados en lugar de una partición normalizada disjunta; las aplicaciones que comparan dos ejes pueden combinar sus límites primero y último, e inspeccionar luego el estado efectivo una vez por cada intervalo resultante
TXLSXWorksheet.GetStoredStyleRegions devuelve TXLSXStyleRegions separados con límites FirstRow, FirstCol, LastRowy LastCol inclusivos para las huellas compactas de formato virtual; esas huellas pueden solaparse, y quienes llaman leen su apariencia efectiva con ReadSemanticCellStyle
TXLSXWorkbook.ReadSemanticFeatures(Kind, Sheet, MaxBytes, MaxItems) devuelve entradas TXLSXSemanticFeatures separadas con una Key estable, bytes canónicos de Definitiony un ItemCount contado; los límites positivos opcionales son 64 MiB y 1,000,000 entradas por defecto
TXLSXSemanticFeatureKind contiene xlsxSemanticDefinedNames, xlsxSemanticDataValidations, xlsxSemanticConditionalFormats, xlsxSemanticTables, xlsxSemanticDrawings, xlsxSemanticPivotTables, xlsxSemanticPivotCaches, xlsxSemanticSlicers, xlsxSemanticSlicerCaches, xlsxSemanticTimelinesy xlsxSemanticTimelineCaches
Los nombres definidos y los tres tipos de caché usan ámbito de todo el libro y permiten una hoja nil; los demás tipos exigen una hoja perteneciente al libro, las reglas y los dibujos conservan su secuencia almacenada, y los arrays y búferes devueltos son copias propiedad del llamador; estos lectores adquieren leases de lectura y heredan la cobertura tipada y el comportamiento explícito de datos no admitidos descrito arriba
TXLSXWorksheet.ReadSemanticRichText(Row, Col, IncludePlainText, MaxBytes, MaxItems, ConsumedItems) devuelve bytes canónicos separados de runs para coordenadas de base uno, o un búfer vacío cuando no existe texto enriquecido e IncludePlainText es false; el ConsumedItems: PInteger opcional recibe el recuento de runs capturado, y la captura de texto plano conserva el almacenamiento empaquetado
TXLSPivotCacheField.GroupItemTypes[Index] expone el tipo tipado correspondiente a GroupItemLabels[Index] y rechaza un índice fuera del dominio de etiquetas agrupadas almacenado
Metadatos de fórmulas y devoluciones de llamada de consultas de Pivot
TXLSGetCellFormulaTexty TXLSCalculator.OnGetCellFormulaText leen el texto de expresión almacenado usando un SheetIndex de base uno y Row/Col de base cero, devolviendo lxOk o un código de error tipado y respetando la protección de fórmulas ocultas; TXLSGetPivotTabley OnGetPivotTable localizan una tabla prestada usando un SheetIndex de base uno y coordenadas de rango de base cero
Los motores de libros conectan estas devoluciones de llamada opcionales en contextos de cálculo normales, de solo lectura y aislados; las devoluciones de llamada no recalculan destinos, no refrescan orígenes de Pivot ni transfieren propiedad
TXLSPivotDataConstraint almacena un FieldName y un Item tipado, y TXLSPivotDataConstraints recopila pares campo/elemento; TXLSPivotTable.GetDataValue consulta un agregado visible admitido de una instantánea separada local de tabla/caché y IntersectsQueryRange usa límites de hoja de base uno que incluyen las celdas modeladas de filtro de informe
TlxPivotQueryBudget recibe estimaciones de trabajo y memoria de forma síncrona y devuelve si la evaluación puede continuar; EXLSPivotQueryBudgety EXLSPivotQueryUnsupported distinguen los límites agotados de los modelos de caché o agregado no admitidos
TXLSPivotCache.QueryModelIsComplete registra la disponibilidad de consulta decodificada con independencia de la completitud de la reproducción en bruto de BIFF; QueryRecordsValid expone la validez de los registros importados y SetQueryRecordValidity aplica la precedencia del lector de formatos sin refrescar los registros
Bytes explícitos de página de códigos
| Miembro | Contrato |
|---|---|
XlsEncodeCodePage(Text, CodePage, MaxBytes = -1) | Devuelve un RawByteString con los bytes exactos en una página orientada a bytes explícita y distinta de cero, preserva los nulos embebidos, verifica la identidad del round-trip Unicode y eleva EConvertError para texto no representable; un MaxBytes no negativo conserva el prefijo de caracteres completos más largo que quepa, mientras que -1 deja la longitud sin acotar; la validación cubre el texto original antes del truncamiento |
XlsDecodeCodePage(Bytes, CodePage) | Devuelve un WideString desde la codificación explícita de bytes y preserva los nulos embebidos; las secuencias de bytes mal formadas siguen el comportamiento del decodificador instalado; la página 0 y la página UTF-16 1200 se rechazan porque esta API no infiere una configuración regional ANSI ni maneja un flujo de bytes UTF-16 |
TXLSBlob.GetCompressedUnicodeString(Index, Count) | Devuelve unidades de código exactas del Unicode comprimido BIFF8 de U+0000 a U+00FF, preserva los nulos embebidos, valida el rango de bytes solicitado y no interpreta esos bytes mediante una página de códigos |
TXLSBlob.AddRawString | Anexa los bytes codificados exactos sin una conversión de página de códigos de AnsiString y actualiza DataLength; una entrada vacía no anexa bytes |
TXLSCalculator.CodePage, TXLSFormula.FCodePage | Seleccionan la codificación explícita de bytes de fórmulas heredadas, con CP1252 por defecto; el libro clásico propietario sincroniza su calculadora al inicializarse o cuando se llama a SetCodePage |
TXLSFontList.GetFont, TXLSNumFormatList.GetNumFormatBlob, TXLSStyles.GetStyleBlob | El argumento CodePage opcional es 1252 por defecto y codifica texto BIFF5; la salida BIFF8 sigue siendo Unicode |
TMsoDrawing.StoreNotes | El argumento CodePage opcional es 1252 por defecto y codifica el texto de comentarios anterior a Unicode; el límite de tamaño del registro de comentario ordinario BIFF5 existente se mantiene; esto no añade campos de autor, texto enriquecido o geometría ausentes de ese formato de registro |
TXLSCustomName.SetSourceData | Los argumentos opcionales FileFormaty CodePage identifican los bytes NAME en bruto importados y son xlExcel97 y 1252 por defecto; los registros en bruto se reutilizan solo cuando su formato y su codificación heredada coinciden con la salida solicitada |
TXLSFormulatArrayItem.GetDataSize, TXLSFormulatArray.GetDataSize, TXLSFormulatArray.GetData, TXLSFormulatArrays.GetDataSize, TXLSFormulatArrays.GetData, TXLSCompiledFormula.GetExternalData | El argumento ACodePage opcional es 1252 por defecto; el tamaño y la salida de arrays de cadenas heredados usan el mismo recuento de bytes codificados, mientras que las cadenas BIFF8 siguen siendo Unicode |
Pase el RawByteString devuelto directamente a AddRawString o a una operación de flujo orientada a bytes; convertirlo a un AnsiString predeterminado puede recodificar sus bytes en sistemas FPC nativos
Nombres definidos clásicos y bloques de fórmulas de array
TXLSCustomName deferred compilation | ClearDefinition libera el AST compilado de RefersTo conservando la cadena de definición almacenada y cualquier byte NAME importado en bruto, Compile reconstruye el AST desde la definición almacenada e informa del éxito, y GetCompiledFormula recompila automáticamente, de modo que un nombre borrado se vuelve a resolver en su siguiente lectura; PeekCompiledFormula devuelve el AST actual sin disparar esa recompilación, y StoredDefinition expone el origen de la definición sin analizar |
TXLSCustomName identity and flags | StoreIndex expone la posición de almacenamiento del nombre dentro de su colección, NameID su identidad numérica única en el libro tal como la usa el motor de cálculo, y IsHiddeny IsMacro leen y escriben las banderas hidden y macro del registro NAME de BIFF |
TXLSFormulatArray.RowsCount, ColsCount | Informan de las extensiones de filas y columnas del bloque de fórmula de array analizado; ambas empiezan en uno y acotan el dominio de elementos por celda que transportan los métodos de emisión |
Pools clásicos de fuentes, formatos y estilos
TXLSFontList stored font attributes | Las propiedades indexadas reflejan la clave de fuente almacenada en un índice de base cero de la lista: Name, Size, ColorIndex, Bold, Italic, Strikethroughy Underline se unen a OutLineFont, Shadow, SubScript, SuperScript, Familyy CharSet para inspección de solo lectura |
TXLSNumFormatList.AddValue, FmtExists | AddValue registra una cadena de formato y devuelve su índice, mapeando las grafías de formatos integrados a sus ids canónicos y marcando los formatos de fecha y hora; FmtExists informa de si una cadena de formato personalizado ya está registrada |
TXLSNumFormatList.IsDateFormat, IsDateFormatValue | IsDateFormat informa de si el formato almacenado en un índice está marcado como formato de fecha o hora, mientras que IsDateFormatValue comprueba directamente una cadena de formato buscando tokens de fecha y hora |
TXLSStyles.AddStyle, AddBuiltinStyle | AddStyle registra un estilo de celda personalizado con nombre vinculado a un índice de registro XF, y AddBuiltinStyle registra un estilo de celda integrado por su id integrado junto con el nivel de esquema que usan los estilos de nivel de filas y columnas |
TXLSStyles.BuiltinStyleName | Función de clase que devuelve el nombre de visualización canónico de Excel para el estilo de celda integrado con ids de 0 a 53; los ids fuera de rango devuelven un nombre vacío, de modo que los escritores recurren a la forma de byte integrado en bruto |
Aplicaciones auxiliares de paquetes y almacenamiento binario
TXLSXOpaquePackage | LoadWorkbookXmlMetadata captura el estado XML de nivel de libro, MarkAllPartsClean restablece las marcas de modificación y WorkbookExtLstXml junto con WorkbookRootAttributesXml exponen los fragmentos XML del libro preservados; IsDiscardedPart informa de si un nombre de parte se eliminó mediante una operación de descarte como la limpieza de complementos web |
TXLSFileStorage | Load, LoadFolder, Writey WriteFolder transfieren contenido de archivos compuestos; Child y Count enumeran las entradas secundarias, cada una un TXLSFileItem — un nodo de almacenamiento con nombre cuya subclase TXLSFileStream transporta los bytes almacenados como un TXLSBlob con DataSize informando de la longitud de la carga útil |
TXLSBlob | Add anexa otro blob, mientras que AddByte, AddWord, AddLong, AddDouble, AddStringy AddWideString anexan valores con tipo; CopyData, CopyMem, FillByte, Write, Clear, Resety Dump gestionan el contenido; Buff y DataLength exponen el almacenamiento |
TXLSBlobList | Append, AppendList, CopyDatay Write combinan o emiten entradas; Entries y TotalSize exponen el estado de la lista |
TXLSWideStringBuilder | AddString anexa texto y Length informa del recuento de caracteres acumulado |
Novedades de dibujo y del visor de libros
TXLSFillFormat | PictureFill configura un relleno de forma basado en imagen, mientras que FillType selecciona el tipo de relleno (sólido, degradado, imagen o textura preestablecida) que emite el escritor |
TXLSShapes | AddScrollBar y AddSpinner crean controles de formulario — los objetos TXLSScrollBar y TXLSSpinner devueltos exponen la geometría del control y la celda vinculada, y el spinner añade los límites de paso Min, Maxe Inc —, mientras que RegisterScrollBar y RegisterSpinner registran controles cargados de un libro |
TXLSWorkbookViewer | CanUndo y CanRedo informan de la disponibilidad del historial de transacciones; ClearSelectedRange, CopySelectedRange, PasteSelectedRangey PasteText operan sobre el rango seleccionado, mientras que ReferencePickMode habilita la selección interactiva de referencias de celdas o rangos |
TXLSWorkbookEditHistory | El motor de transacciones de contenido sin interfaz de lxWorkbookViewer vincula un libro clásico o XLSX prestado y proporciona preflight de protección de rangos, copia y pegado de texto Unicode, borrado de rangos y una transacción de undo/redo por operación; vea transacciones de edición sin interfaz |
TXLSCellContentSnapshot | Ambas clases de hojas de cálculo exponen ReadCellContent(Row, Col)y RestoreCellContent(Snapshot) para la captura y restauración separadas de contenido nativo en coordenadas de base uno de la hoja de origen; la captura no evalúa fórmulas, no crea celdas ausentes ni materializa almacenamiento empaquetado, y la carga útil inmutable NativeData conserva el texto enriquecido, las cachés de fórmulas y el estilo de celda; la restauración directa es una operación de bajo nivel cuyo llamador debe validar la protección y los límites estructurales |
Paginación, salida de imágenes e impresión
XLSValidateCachedChartSceneModel, XLSRecordCachedChartScene | Hacen el preflight de los metadatos de gráficos en caché sin resolver celdas y registran primitivas acotadas de vectores y texto para un gráfico separado en lxPortableChart, devolviendo TXLSPortableSceneObjects y la contabilidad de elementos, bytes y texto; los puntos de entrada de lxPagination conservan la misma implementación compartida para los llamadores de Windows existentes; el subconjunto actual cubre gráficos ordinarios de columnas, barras, líneas, dispersión, circular, de anillo y de área de una sola serie con un grupo de trazado primario, y el registro exige metadatos nativos validados, puntos de caché finitos y estrictamente ordenados, y un modelo de gráfico sin adjuntar; vea registro de gráficos en caché |
TXLSGraphicsBackend | DrawTiledImage pinta un fondo de hoja repetidamente por la región de página recortada |
TXLSPaginationModel | CompactRangeMode, IncludeDrawings, IncludeGridlines, IncludeCellBordersy PaintPageBackground controlan el contenido de la página; RenderDPI, RenderColorModey RenderSession exponen la resolución de salida, el manejo del color y la sesión de renderizado activa |
TXLSCellImageExporter | Measure calcula las dimensiones en píxeles para rangos clásicos o XLSX; ImageFormat, JpegQuality, MaxPixels, MaxBytes, IncludeObjects, IncludeGridlines, IncludeCellBorders, BackgroundColor, TransparentBackground, BeforePaint, AfterPainty PaginationModel configuran el renderizado y permiten observarlo |
TXLSPageImageExporter | BeforePaint, AfterPaint, MaxPixels, MaxBytes, BackgroundColory TransparentBackground aplican los mismos enlaces de pintado y límites de seguridad de salida a la exportación de imágenes paginadas |
TXLSPrintDocument | PrintWorksheet, PrintWorkbooky PrintAllVisibleSheets envían contenido clásico o XLSX a la impresora VCL; FirstPage, PrintRangeOnly, Collate, Copies, OnBeforeNewPagey OnAfterGeneratePage controlan el trabajo de impresión |
Modelos de gráficos clásicos y objetos de gráfico de hojas de cálculo
TXLSXChartSeries | LineVisible, LineColorRGBy LineWidthPoints describen un trazo de serie independiente; LineStyleSet, LineColorSety LineWidthSet conservan los ajustes explícitos, y EffectiveLineVisible resuelve la convención heredada de solo relleno; MarkerFillSety MarkerBorderSet distinguen el negro explícito de los colores automáticos de marcador, mientras que la grabación portable de líneas y dispersión admite diámetros de círculo de 2 a 72 puntos; los setters de color y ancho validan antes de mutar y obedecen los leases de lectura del libro |
TXLSChartSeries | AddTrendline y AddErrorBars crean anotaciones de serie con tipo, mientras que TrendlineCount y ErrorBarCount informan de los tamaños de sus colecciones; el campo MarkerSize existente conserva los twips BIFF en bruto, mientras que el getter de solo lectura MarkerSizePoints devuelve ese valor dividido por 20, incluidos los tamaños fraccionarios en puntos |
TXLSChartAxis | HasAxcExtFlag comprueba una marca AXCEXT cruda sin exigir que quien la llama decodifique la máscara de bits |
TXLSChartModel | AxisGroupCount informa del número de grupos de ejes primario y secundario decodificados del gráfico |
TXLSCustomChart | AddAreaData añade un elemento de área preconstruido para el reenlace de fórmulas en el guardado, y ApplyDateAxisModel aplica un modelo de eje de fechas con tipo a los registros crudos del gráfico; GetStoredRecordInfo lee un id de registro de base cero y un recuento de bytes sin asignación, mientras que ReadStoredRecord(Index, MaxBytes) comprueba el límite de bytes antes de devolver bytes separados en TXLSChartStoredRecord, sin evaluar fórmulas ni modificar cachés |
TXLSWorksheet | AddChartObject ancla un marco de gráfico en la hoja de cálculo y lo conecta al constructor de gráficos compartido |
TXLSXChartLayoutResolver | TryResolve resuelve un rectángulo de diseño con validación de tamaño opcional y ResolveChart calcula los rectángulos de gráfico, título, leyenda, trazado y ejes |
Modelo de decodificación de gráficos con tipos
El estado decodificado del gráfico se expone como registros y enumeraciones sencillas, de modo que el código de inspección nunca tenga que recorrer registros BIFF crudos: TXLSChartInfo transporta el resumen del gráfico decodificado con TXLSChartTypeFamily (cfBar, cfLine, cfPie, cfArea, cfScatter, cfRadar, cfDoughnut, cfSurface, cfBubble), cada serie informa de TXLSChartSeriesType, y TXLSChart3DState junto con TXLSChart3DInfo describen las vistas tridimensionales. TXLSChartAxisType (catCategory, catValue, catSeries, catDate) y TXLSChartLegendPosition clasifican ejes y leyendas, mientras que el modelo de eje de fechas usa TXLSChartDateUnit (xcduDays, xcduMonths, xcduYears) y TXLSChartDateValues. TXLSCustomChart expone el modelo decodificado a través de TXLSChartInfo; las anotaciones de líneas de tendencia y de barras de error son objetos con tipo (TXLSChartTrendline, TXLSChartErrorBars) accesibles desde cada serie
Registros de creación de gráficos
La creación de hojas de gráfico y del constructor acepta registros sencillos en lugar de grafos de objetos: TXLSChartTrendlineInfo, TXLSChartErrorBarsInfo, TXLSChartDataLabelsInfoy TXLSChartSeriesStyleInfo rellenan las entradas de serie que se pasan a TXLSWorksheets.AddChartSheet y al constructor de gráficos compartido, y TXLSPivotChartInfo describe el encuadre de gráfico dinámico que se usa cuando un gráfico se vincula a una tabla dinámica
Inspección de rellenos de gráficos clásicos
TXLSCustomChart.GetChartModel decodifica las tablas de propiedades OfficeArt nativas admitidas y las tablas de propiedades terciarias de los registros GelFrame, incluidas las propiedades que siguen a entradas de carga útil compleja; la representación del constructor existente sigue admitida, y los límites de tabla mal formados dejan el relleno tipado previo sin cambios y reportan el registro no admitido
La inspección del gráfico valida la carga útil completa de texto y anotación almacenada antes de añadir estado tipado: los nombres de línea de tendencia o los separadores de etiquetas de datos truncados reportan su id de registro a través de _UnsupportedSemanticRecordID, mientras que las cabeceras SeriesText nulas o demasiado cortas reportan ese registro como no admitido tanto para BIFF5 como para BIFF8; una extensión declarada de texto de serie que excede su carga útil eleva EReadError, libera el modelo parcial y deja los registros del gráfico almacenados sin cambios
El getter de marcador y la inspección de rellenos preservan el almacenamiento en bruto del gráfico; la ruta de captura de apariencia declarada valida por separado los gráficos núcleo admitidos, mientras que las sumas de verificación de título enriquecido o de extensiones de forma sin verificar siguen sin estar admitidas
Lectores acotados de gráficos, cadenas y fuentes almacenados
TXLSChartStoredBytes es un array de bytes separado y TXLSChartStoredRecord contiene RecordIdy Data; estos lectores inspeccionan el almacenamiento de origen retenido sin crear un modelo de gráfico decodificado ni evaluar fórmulas
| TXLSCustomChart.GetStoredRecordInfo | Devuelve un id de registro y una longitud de bytes contada para un índice de registro de base cero sin copiar su carga útil |
| TXLSCustomChart.ReadStoredRecord | Copia una carga útil tras validar el índice y el MaxBytes no negativo; el límite de bytes predeterminado es High(Int64) |
| TXLSCustomChart.ReadStoredFormulaLeafInfo | Inspecciona una hoja BRAI almacenada coherente usando la calculadora de origen exacta y cuotas no negativas de bytes y texto; las calculadoras ajenas o los propietarios de traducción devuelven una hoja no admitida, y AllowUnboundBiff es False por defecto |
| TXLSCustomChart.ReadStoredFormulaLiteral | Devuelve un literal separado solo tras las mismas comprobaciones de procedencia y cuota; una hoja no admitida eleva EInvalidOperation |
| TXLSCustomChart.SourceBiffVersion, SourceCodePage | Procedencia de solo lectura de los registros de gráfico retenidos |
| TXLSStringTable.GetStoredStringLength, ReadStoredString | Cuenta el almacenamiento UTF-16 existente usando la identidad de cadena de base uno de la tabla, y copia solo cuando la cuota no negativa de caracteres la cubre; las identidades no válidas y el almacenamiento UTF-16 incompleto se rechazan |
| TXLSFontList.GetStoredNameLength, ReadStoredName | Comprueba la clave de fuente almacenada en el índice de base cero de la lista antes de contar o copiar su nombre bajo una cuota no negativa de caracteres |
| TMsoFbtOptItem.HasStoredUnicodeString | Comprueba los metadatos almacenados acotados de cadena Unicode compleja sin materializar una cadena |
| TMsoShapeContainer.HasOrdinaryChartObjectData | Comprueba el tipo de objeto de gráfico almacenado, la identidad de objeto distinta de cero, las banderas admitidas y la ausencia de datos de cola de objeto desconocidos |
Mantenimiento de la tabla de cadenas compartidas y emisión de SST
TXLSStringTable de lxStringTable respalda las cadenas compartidas del libro clásico; los miembros de abajo cubren el registro del lado del lector, el mantenimiento de ranuras y la emisión SST en bruto para guardados round-trip
KeyExists, AddWithExtras | KeyExists informa de si una cadena ya ocupa una ranura; AddWithExtras es el compañero de Add del lado del lector que adjunta la carga útil en bruto rgRun de texto enriquecido y rgExtRst fonética a la entrada sin elevar su recuento de referencias, porque cada celda que la referencia restaura luego el recuento mediante la ruta de adición normal |
Replace, ReplaceIndex | Replace suelta una referencia en la ranura antigua, liberándola cuando su recuento llega a cero, y vuelve a añadir el texto devolviendo la ranura resultante; ReplaceIndex mueve una referencia de la ranura antigua a la nueva sin copiar texto |
AddSSTData, InitExtIndex | AddSSTData emite la carga útil SST en bruto hacia la lista de blobs del escritor; la sobrecarga que toma una tabla de remapeo de runs de fuente reescribe cada índice de fuente de FormatRun a la salida ([MS-XLS] §2.5.129) para que los runs enriquecidos sigan la reordenación de fuentes del guardado, mientras que una tabla vacía mantiene la emisión literal heredada, y InitExtIndex numera los buckets de ExtSST sobre las ranuras vivas antes de la emisión |
SlotCount, ExtIndex, ParsedExtSSTDsst, ParsedExtSSTItemCount, BiffSizeLimit | SlotCount es el límite superior de base uno para iterar ranuras, con las ranuras eliminadas leyéndose vacías, ExtIndex resuelve una ranura a su número de bucket de ExtSST o -1 para una ranura no viva, ParsedExtSSTDssty ParsedExtSSTItemCount conservan los valores de cabecera EXT/SST importados, y BiffSizeLimit acota cada fragmento de registro emitido — el escritor clásico lo fija en 2080 bytes para BIFF5 y 8224 para BIFF8 |
Adjuntos PDF, firmas y exportación HTML
IXLSPDFAttachmentSource | WriteTo transmite los bytes del adjunto a la exportación PDF sin exigir que el exportador sea el propietario de los datos de origen |
TXLSPDFExport | AttachmentDuplicatePolicy selecciona el manejo de nombres duplicados, AttachmentSpoolThreshold controla el spooling de adjuntos, y DocumentLanguage escribe los metadatos de idioma del documento |
TXLSPDFSignature | TextAlign, TextSize, TextColor, TextBoldy TextItalic configuran la apariencia visible de la firma |
TXLSHTMLExport | ViewMode (tipo TXLSHtmlViewMode: vista actual o tabla completa de la hoja de cálculo) elige la presentación HTML, mientras que HotTrackTargets (conjunto de TXLSHtmlHotTrackTarget) y HotTrackColor configuran el resaltado interactivo de celdas y objetos |
TXLSXHtmlExportOptions | ViewMode, HotTrackTargetsy HotTrackColor proporcionan los controles equivalentes de exportación HTML de XLSX |
Auditoría de cálculo y controles del libro
TXLSCalculationAuditReport | Truncated informa de un truncamiento por límite de incidencias, StackTruncated informa del truncamiento de marcos de la pila de llamadas, y Issues indexa las incidencias de cálculo registradas |
TXLSUserFunctionRegistry | Generation cambia cada vez que cambia el conjunto de funciones de usuario registrado, lo que permite invalidar los enlaces de fórmulas en caché |
EXLSReportRecoverableData | Category identifica la categoría de datos de informe recuperables que se presenta a quien realiza la llamada |
IXLSWorkBook | ManualCalculationThreadCount limita el número de workers que usa el cálculo manual |
TXLSXDataValidation | HasUnknownImeMode informa de un valor de modo IME que HotXLS preservó pero no reconoce |
TXLSXTable | ColumnCalculatedFormulaArrayRaw y ColumnTotalsFormulaArrayRaw exponen el texto original de las fórmulas array de las columnas de tabla |
Compatibilidad del framing heredado de PivotCache
TXLSPivotCache | RawBucketIndex identifica la posición del subflujo de origen, RawFramingIsLegacy identifica un framing antiguo de HotXLS, RawModelIsComplete informa de si el modelo con tipo representa todos los registros, y CanUpgradeFraming informa de si la reemisión con tipo opcional es segura |
TXLSPivotCache | StreamId expone la identidad del flujo de caché clásico, SourceDataType expone el tipo de datos de origen clásico, y RawHasStorageStream informa de si una caché cargada procedía de un flujo de almacenamiento de PivotCache independiente |
TXLSWorkbook | UpgradeLegacyPivotCacheFraming activa la reescritura de solo los framings de caché heredados de HotXLS cuyo modelo con tipo está completo; la reproducción cruda ordinaria de la caché sigue siendo el comportamiento predeterminado |
StreamId se escribe como el registro SXStreamID ([MS-XLS] §2.4.303) y se repite como el campo SXDB de la cabecera idstm , con el que debe coincidir; SourceDataType se escribe como el registro SXVS ([MS-XLS] §2.4.317: $0001 hoja de cálculo, $0002 externo, $0004 consolidación, $0010 escenario) y se repite como el campo SXDB de la cabecera vsType , con el que debe coincidir. Las cachés construidas a partir de un rango de hoja de cálculo empiezan con el tipo de hoja de cálculo, mientras que las cachés leídas de vuelta desde un archivo conservan el valor que su subflujo transportaba, de modo que el escritor BIFF nunca deja un campo SXDB que nombre un registro que no emitió; RawHasStorageStream marca una caché cargada desde su propio flujo de almacenamiento, cuyo descriptor global del libro precede a los registros en caché
Integración con el portapapeles y opciones de pegado
TXLSPasteOption = (xlpoValuesOnly, xlpoInsertRows, xlpoInsertCols);
TXLSPasteOptions = set of TXLSPasteOption;
function XLSGetClipboardText: WideString;
function XLSSetClipboardText(const Text: WideString): Boolean;
function XLSSetClipboardTextAndHtml(const Text: WideString;
const Html: AnsiString): Boolean;
function XLSBuildHtmlClipboard(const Html: AnsiString): AnsiString;
function XLSEncodeClipboardField(const Text: WideString): WideString;
function XLSClipboardHasText: Boolean;
function XLSParseClipboardGrid(const ClipboardText: WideString;
Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasXmlSpreadsheet: Boolean;
function XLSGetClipboardXmlSpreadsheet: WideString;
function XLSParseXmlSpreadsheet(const XmlText: WideString;
Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasBiff8: Boolean;
function XLSGetClipboardBiff8: AnsiString;
function XLSReadClipboardPasteData(out Biff8: AnsiString;
out Text: WideString): Boolean;
function XLSSetClipboardBiff8(const Biff8: AnsiString;
const Text: WideString; const Html: AnsiString = ''): Boolean;
PasteFromClipboard de ambas fachadas: xlpoValuesOnly conserva los valores en caché de las celdas de fórmula y omite formatos y combinaciones, mientras que xlpoInsertRows y xlpoInsertCols desplazan el contenido existente antes de que el bloque se asienteCF_UNICODETEXT (con fallback a CF_TEXT mediante la página de códigos ANSI actual), XLSSetClipboardTextAndHtml escribe texto y una carga HTML Format con estilo en una única transacción, XLSBuildHtmlClipboard calcula los desplazamientos de bytes CF_HTML para un documento o fragmento, y XLSEncodeClipboardField entrecomilla un campo separado por tabuladores. XLSParseClipboardGrid analiza el texto del portapapeles como filas separadas por tabuladores con el mismo sondeo de tipos que TXLSCSVLoader emplea para CSV, XLSParseXmlSpreadsheet ejecuta el mismo llenado del loader sobre una carga SpreadsheetML 2003 obtenida con XLSGetClipboardXmlSpreadsheet, y las auxiliares Biff8 detectan y leen el flujo nativo que el propio Excel deposita en el portapapeles, de modo que los datos pegados conservan valores, fórmulas y formato sin pérdida de textoXLSReadClipboardPasteData captura el flujo Biff8 y el texto Unicode bajo un único bloqueo del portapapeles, de modo que un pegado nunca tiene que reabrir el portapapeles entre las dos lecturas y no pierde ninguno de los dos formatos aunque otra aplicación lo esté usando a la vez. XLSSetClipboardBiff8 es el lado de escritura correspondiente: coloca el flujo del archivo compuesto BIFF8, el texto Unicode separado por tabuladores y una carga CF_HTML opcional en una sola transacción —pase un Text o un Html vacíos para omitir cualquiera de los dos formatos acompañantes, mientras que la parte Biff8 es obligatoriaResolución del texto de visualización de celdas
TXLSCellDisplayMode = (xcdmFormattedValue, xcdmFormulaText,
xcdmSuppressedZero);
TXLSCellDisplayOptions = record
ShowFormulas: Boolean;
ShowZeros: Boolean;
SheetProtected: Boolean;
FormulaWidthFactor: Double;
DateSerialZero: Double;
end;
TXLSCellDisplayInput = record
HasFormula: Boolean;
FormulaHidden: Boolean;
IsNumericZero: Boolean;
FormulaText: WideString;
FormattedText: WideString;
end;
TXLSCellDisplayResult = record
Mode: TXLSCellDisplayMode;
Text: WideString;
TreatAsText: Boolean;
EffectiveWidthFactor: Double;
end;
function XLSDefaultCellDisplayOptions: TXLSCellDisplayOptions;
function XLSNormalizeFormulaDisplayText(const FormulaText: WideString): WideString;
function XLSResolveCellDisplay(const Options: TXLSCellDisplayOptions;
const Input: TXLSCellDisplayInput): TXLSCellDisplayResult;
XLSResolveCellDisplay con sus propios registros de entrada; XLSDefaultCellDisplayOptions devuelve los valores predeterminados canónicos y XLSNormalizeFormulaDisplayText normaliza una cadena de fórmula para mostrarlaObjetos de validación de datos clásicos
TXLSDataValidationType = (xlsDvAny, xlsDvWhole, xlsDvDecimal, xlsDvList,
xlsDvDate, xlsDvTime, xlsDvTextLength, xlsDvCustom);
TXLSDvErrorStyle = (xlsDvErrStop, xlsDvErrWarning, xlsDvErrInformation);
TDVRange = class; { one validation rule over one or more ranges }
TDVRangeList = class; { the per-sheet rule collection }
TDataValidator = class; { engine that checks edits against the rules }
TXLSWorksheet.Add*Validation crean reglas TDVRange en el TDVRangeListde la hoja; cada regla transporta su TXLSDataValidationType, sus límites, sus mensajes de entrada y de error, y su TXLSDvErrorStyle. TDataValidator evalúa una edición contra las reglas e informa de si el valor es aceptable, que es también la comprobación que subyace a los avisos de validación del propio ExcelEscaneo y resolución de colores indexados
TXLSIndexedColorKind = (xickPalette, xickAutomatic, xickSystem, xickInvalid);
TXLSSystemColorRole = (xscrNone, xscrWindowText, xscrWindowBackground,
xscrChartText, xscrChartBackground, xscrChartNeutral, xscrToolTipText);
TXLSIndexedColorResolution = record
Kind: TXLSIndexedColorKind;
RawIndex: Int64;
PaletteSlot: Integer;
SystemColorRole: TXLSSystemColorRole;
ARGB: LongWord;
HasResolvedColor: Boolean;
end;
TXLSNearestIndexedColorMatch = record
InputARGB: LongWord;
ColorIndex: Integer;
PaletteSlot: Integer;
ARGB: LongWord;
DistanceSquared: Double;
ExactMatch: Boolean;
end;
TXLSIndexedColorUsageKind = (xicukFont, xicukFillForeground,
xicukFillBackground, xicukGradient, xicukBorder, xicukConditionalFormat,
xicukChart, xicukShape, xicukComment, xicukWorksheet, xicukOther);
ResolveIndexedColor, NearestIndexedColory ScanIndexedColorUsage : una resolución informa de cuál de las cuatro fuentes TXLSIndexedColorKind procede un token indexado, junto con su ranura de paleta, su rol de color del sistema y su ARGB normalizado; una coincidencia más cercana añade la distancia RGB al cuadrado y la marca de coincidencia exacta, y el escaneo de uso etiqueta cada categoría de consumidor que bloquea una ranura de paleta. La biblioteca mantiene una caché interna TXLSIndexedColorMatcher cuyas claves se basan en la generación de la paleta — FindNearest responde desde ella a las consultas de color más cercano y UpdateSlot parchea una ranura de paleta —, de modo que las resoluciones repetidas permanecen libres de asignacionesAplicaciones auxiliares de referencias A1
function XLSA1CellRef(ARow, ACol: Integer): WideString;
function XLSTryParseA1CellRef(const ARef: WideString;
out ARow, ACol: Integer): Boolean;
function XLSTryParseA1RangeRef(const ARef: WideString;
out ARow1, ACol1, ARow2, ACol2: Integer): Boolean;
False para una entrada mal formada en lugar de lanzar una excepción