Estos miembros públicos soportan integraciones que inspeccionan la E/S, implementan serializadores o coordinan el cálculo a través de libros, con los miembros del libro declarados en lxHandleX y el grafo del espacio de trabajo declarado en lxDepGraph
Las aplicaciones ordinarias deberían usar primero el formato de celdas, SaveAs, Recalculate y las APIs del espacio de trabajo de libros externos; el registro en pools de estilos y la programación del grafo exigen las mismas convenciones de índices y ciclo de vida que los serializadores y el motor de cálculo de la biblioteca
TXLSXWorkbook.OnReadCell recibe el índice de hoja, la fila, la columna, el valor almacenado y la fórmula de cada celda materializada durante el análisis XLSX, con un indicador Cancel escribible; TXLSXWorkbook.OnWriteCell recibe un valor de salida escribible más los indicadores Skip y Cancel antes de que una celda se serialice, de modo que un host puede transformar u omitir la salida sin reemplazar la API del libro por la API directa de streams
Ambas devoluciones de llamada usan coordenadas de hojas y celdas basadas en uno, y sus tipos declarados son TXLSXCellReadEvent y TXLSXCellWriteEvent; las devoluciones de llamada se ejecutan dentro de la operación activa de E/S, así que evite iniciar otra operación sobre el mismo libro desde una devolución de llamada
TXLSXWorkbook.RecoveryMode tiene False como valor predeterminado y permite que las fallas admitidas de análisis del XML de hojas se conviertan en diagnósticos de advertencia mientras la apertura continúa, dejando potencialmente contenidos de hojas recuperados solo parcialmente; no garantiza la recuperación de un paquete ZIP ilegible, así que inspeccione los diagnósticos y los datos recuperados antes de guardar
TXLSXWorkbook.FireProgress despacha una fase, un estado, un conteo actual y un conteo total a los manejadores de progreso asignados, con el manejador heredado recibiendo notificaciones de trabajo y el manejador extendido recibiendo todos los estados; un manejador extendido puede solicitar cancelación, excepto que la notificación de fin de escritura no puede revertir una salida ya confirmada
TXLSXWorkbook.AddDiagnostic agrega y devuelve un diagnóstico de propiedad del libro, registra el código, la severidad, la operación, el mensaje, el código nativo, el contexto de hoja y el nombre de la parte del paquete aportados, copia el nombre de la clase de la excepción cuando se aporta una, e invoca OnDiagnostic; no toma propiedad de la excepción ni la lanza
function TXLSXWorkbook.AddDiagnostic(ACode: Integer; ASeverity: TXLSDiagnosticSeverity; AOperation: TXLSDiagnosticOperation; const AMessage: WideString; ANativeCode, ASheetIndex: Integer; const ASheetName, APartName: WideString; AException: Exception): TXLSDiagnostic;
TXLSXWorkbook.CSVEmitFormulas tiene False como valor predeterminado y cambia la salida CSV de resultados de fórmulas a texto de fórmulas para las celdas con fórmula; la salida de resultados intenta la evaluación de fórmulas y hace fallback al texto o valor almacenado de la celda cuando la evaluación falla; TXLSXWorkbook.CSVQuoteAllStrings también tiene False como valor predeterminado y fuerza comillas alrededor de los campos de texto mientras que los números, las fechas, los Boolean, Null y Empty conservan las reglas normales de entrecomillado
TXLSXWorkbook.LastSaveUsedStreaming reporta si el guardado preparado más reciente usó streaming de hojas, mientras que TXLSXWorkbook.LastSavePeakRowXmlChars reporta el fragmento XML de fila almacenado en búfer más grande, TXLSXWorkbook.LastSaveBufferedWorksheetXmlChars reporta el XML de hojas combinado en búfer, y TXLSXWorkbook.LastSavePeakAuxiliaryXmlChars reporta el fragmento XML auxiliar rastreado más grande; son conteos de caracteres de la instrumentación del serializador, no mediciones de la memoria total del proceso, y la salida ODS no usa la ruta de streaming de hojas XLSX
TXLSXWorkbook.TryCopyPreservedPart intenta copiar una parte de fuente preservada elegible, incluida su representación comprimida, a un TZipArchive de destino aportado por el llamador, devolviendo True cuando se copia o False cuando se requiere la serialización normal; la fuente debe permanecer disponible desde una apertura respaldada por archivo, y las partes faltantes o descartadas explícitamente no pueden copiarse
El llamador es dueño del archivo de destino y debe finalizarlo normalmente; una falla de reversión de la copia comprimida aún puede lanzar una excepción, y este ayudante ni construye un paquete completo de libro ni actualiza sus relaciones o tipos de contenido
TXLSXWorkbook.SaveAsEncryptedAgile acepta un nombre de archivo y una contraseña no vacía, serializa el paquete XLSX en memoria y escribe el contenedor cifrado Agile, devolviendo 1 en caso de éxito o -1 ante una falla reportada; el VerifyEncryptedSave opcional realiza una comprobación de reapertura después de escribir, y el método exige memoria para el paquete sin cifrar además de sus bytes serializados
TXLSXWorkbook.VerifyEncryptedFile abre el archivo y la contraseña aportados en un libro temporal y devuelve True únicamente cuando esa apertura tiene éxito, convirtiendo las excepciones en False; esto comprueba la legibilidad en lugar de comparar cada celda con el libro actual, y sigue el comportamiento normal de OpenEncrypted para una entrada XLSX sin cifrar
TXLSXWorkbook.DocSecurity almacena el campo de bits extendido de propiedades del documento: 1 denota protección por contraseña, 2 recomendación de solo lectura, 4 estado de solo lectura forzado y 8 bloqueo de anotaciones; estos bits de metadatos no aplican por sí mismos cifrado ni restricciones de acceso
TXLSXWorkbook.DocPropsTouched es el indicador de solo lectura que los escritores de propiedades del documento usan para decidir si las propiedades rastreadas han sido configuradas; los definidores de propiedades rastreadas como Title lo definen, mientras que los metadatos extendidos asignados directamente no lo definen automáticamente
TXLSXWorkbook.WorkbookProtectHash expone el hash heredado de protección del libro cargado o generado, normalmente cuatro dígitos hexadecimales o una cadena vacía cuando no existe hash de contraseña; use los métodos de protección del libro para cambiar la protección en lugar de asignar este valor de solo lectura, y mantenga la protección de la estructura del libro separada del almacenamiento cifrado de archivos
TXLSXWorkbook.ThemeMajorFont y TXLSXWorkbook.ThemeMinorFont exponen las tipografías de títulos y cuerpo cargadas del tema y sobrescriben los nombres cuando el tema predeterminado de Office se genera; un tema preservado textualmente tiene precedencia sobre estas configuraciones de nombres de fuentes
TXLSXWorkbook.DefaultTableStyleName y TXLSXWorkbook.DefaultPivotStyleName hacen ida y vuelta con los nombres predeterminados almacenados en la tabla de estilos para las tablas de Excel y tablas dinámicas recién insertadas; asignarlos no reformatea directamente cada objeto existente
TXLSXWorkbook.ResolveTableStyle devuelve un estilo personalizado de propiedad del libro por nombre, de lo contrario resuelve y cachea los estilos integrados admitidos TableStyleLight1 a TableStyleLight21, TableStyleMedium1 a TableStyleMedium28 o TableStyleDark1 a TableStyleDark11, y devuelve nil para un nombre desconocido; no libere el estilo devuelto
TXLSXWorkbook.FastStyleAppend tiene False como valor predeterminado y permite que la creación en bloque omita los escaneos de deduplicación en los pools de estilos y el registro ordinario de estilos compuestos, intercambiando una tabla de estilos más grande por una inserción más rápida cuando se crean muchos estilos distintos
function TXLSXWorkbook.RegisterCompositeXf( AFont, AFill, ABorder, ANumFmt, AAlign, AProt: Integer): Integer; overload; function TXLSXWorkbook.RegisterCompositeXf( AFont, AFill, ABorder, ANumFmt, AAlign, AProt, ABuiltinNumFmt: Integer): Integer; overload; function TXLSXWorkbook.RegisterLinkedCompositeXf( AFont, AFill, ABorder, ANumFmt, AAlign, AProt, AParentXfId: Integer; ALinkedParts: TXLSXFormatParts): Integer;
TXLSXWorkbook.RegisterCompositeXf registra los índices combinados de fuente, relleno, borde, formato numérico, alineación y protección, y devuelve el índice absoluto de cellXfs, no una ranura del pool compuesto; la sobrecarga de siete argumentos acepta un ID de formato numérico integrado que tiene precedencia sobre el índice de formato personalizado aportado, con cero significando sin sobrescritura
TXLSXWorkbook.RegisterLinkedCompositeXf registra adicionalmente el ID del estilo XF padre y las partes de formato enlazadas a ese padre, reteniendo entradas separadas para las combinaciones distintas de padre o enlace; también devuelve un índice absoluto de cellXfs
TXLSXWorkbook.CompositeXfBase devuelve el primer índice compuesto absoluto, calculado a partir de los pools de estilos unidimensionales actuales, mientras que TXLSXWorkbook.CompositeXfCount cuenta las entradas compuestas registradas; una ranura del pool usada por GetCompositeXf es el índice absoluto menos la base, y la base puede cambiar cuando esos pools crecen, de modo que estos valores pertenecen al estado actual de serialización
TXLSXWorkbook.RegisterCondDxf registra una referencia prestada de TXLSDxfStyle y devuelve su ID de estilo diferencial basado en cero, reutilizando un ID existente para la misma referencia de objeto; mantenga vivo el objeto mientras la serialización lo use
TXLSXWorkbook.ResetCondDxfs limpia el conteo del registro activo sin liberar los estilos prestados, y TXLSXWorkbook.CondDxfCount reporta ese conteo; la preparación del guardado reconstruye este registro, así que no persista estos IDs independientemente del paquete que se esté escribiendo
TXLSXWorkbook.PivotCaches es la colección TXLSPivotCaches de propiedad del libro compartida por las tablas dinámicas de las hojas; AddPivotTable reutiliza un caché de fuente coincidente o crea uno, y RefreshPivotCache actualiza el caché identificado preservando las identidades de miembros admitidas
TXLSXWorkbook.RecalcThreads tiene cero como valor predeterminado, con cero o uno usando recálculo en serie y valores mayores habilitando la evaluación por trabajadores de fronteras de fórmulas independientes; los libros con arreglos dinámicos usan una pasada en serie sin importar esta configuración, los nodos de tablas de datos What-If permanecen en serie, y los manejadores de funciones de usuario usados por los trabajadores deben ser thread-safe
TXLSXWorkbook.SolveCycleIteratively es un punto de entrada avanzado invocado normalmente por Recalculate cuando la iteración está habilitada, que consume índices de nodos del grafo de dependencias actual de ese libro y evalúa los nodos de ciclos en el TList aportado; los índices de un grafo del espacio de trabajo o de otro libro no son intercambiables
El resolutor usa IterateCount y IterateDelta, retiene los valores finales incluso si se alcanza el límite de iteración, y devuelve lxOk sin certificar la convergencia; los miembros de ciclos de arreglos dinámicos devuelven lxErrorCircumRef, y el argumento CycleCount de la firma no reemplaza la clasificación de ciclos en los nodos del grafo
TXLSWorkspaceDepGraph almacena las dependencias de fórmulas a través de identidades de libros y hojas aportadas por el llamador sin abrir libros ni evaluar fórmulas; construya un grafo a partir de las fórmulas actuales y las referencias resueltas, y luego reconstrúyalo tras cambios estructurales o de fórmulas que invaliden esas referencias
function TXLSWorkspaceDepGraph.AddNode( const AWorkbookIdentity, ASheetName: WideString; ASheetIndex, ARow, ACol, AOutRow2, AOutCol2: Integer; AVolatile: Boolean; AReferences: TXLSWorkspaceDepReferenceList; ARefUnstable: Boolean = False): Integer; procedure TXLSWorkspaceDepGraph.DirtyTopoOrder(AOrder: TList; out ACycleNodeCount, ABlockedNodeCount: Integer);
TXLSWorkspaceDepGraph.AddNode agrega un nodo de fórmula y devuelve su índice de nodo basado en cero, copiando las referencias aportadas en lugar de ser dueño de su lista; los índices de hojas están basados en uno, mientras que las coordenadas de filas y columnas, incluida la esquina inferior derecha del rectángulo de salida inclusivo, son coordenadas de la calculadora basadas en cero
TXLSWorkspaceDepReferenceList.Add agrega un registro de referencia resuelta de celda, rango o nombre definido, TXLSWorkspaceDepReferenceList.Items lee esos registros por índice basado en cero, y TXLSWorkspaceDepReferenceList.Clear restablece la lista para reutilizarla; el llamador es dueño de esta lista de entrada y puede limpiarla o liberarla después de que AddNode haya copiado sus entradas
TXLSWorkspaceDepGraph.BuildEdges resuelve las referencias almacenadas de celdas y rangos contra los rectángulos de salida de fórmulas; las referencias marcadas con LookupScan propagan la marca de obsolescencia pero no imponen orden de evaluación ni participan en la detección de ciclos
TXLSWorkspaceDepGraph.NodeIndexOf resuelve un libro, una hoja, una fila y una columna a un índice de nodo basado en cero o -1 cuando está ausente, usando el nombre de la hoja cuando está disponible y el índice de hoja declarado como fallback
TXLSWorkspaceDepGraph.FindDependentsOfDefinedName limpia un TList aportado no nil y lo llena con los índices de nodos que se refieren directamente al símbolo nombrado en el libro y ámbito especificados, con un índice de ámbito negativo coincidiendo con todos los ámbitos; las entradas se codifican como Pointer(NativeInt(NodeIndex)), de modo que una entrada nil de la lista puede representar el nodo cero
TXLSWorkspaceDepGraph.BeginDirtyGeneration inicia una nueva generación, restablece el conteo activo de nodos obsoletos y los indicadores de bloqueo por ciclos, y hace inactivas las marcas de obsolescencia anteriores; llámelo antes de marcar los nodos para una nueva pasada de recálculo
TXLSWorkspaceDepGraph.MarkAllDirty marca cada nodo de la generación actual; TXLSWorkspaceDepGraph.MarkWorkbookDirty siembra los nodos pertenecientes al libro identificado y los nodos que se refieren a él, y luego propaga a los dependientes, mientras que TXLSWorkspaceDepGraph.MarkVolatileDirty siembra los nodos volátiles y TXLSWorkspaceDepGraph.MarkCyclesDirty siembra los componentes de ciclos detectados, propagando también su obsolescencia
TXLSWorkspaceDepGraph.IsNodeDirty reporta si un nodo válido lleva la marca de la generación actual y devuelve False para un índice inválido; TXLSWorkspaceDepGraph.DirtyGeneration expone esa marca y TXLSWorkspaceDepGraph.DirtyNodeCount cuenta los nodos marcados en la generación activa
TXLSWorkspaceDepGraph.DirtyTopoOrder exige un TList de propiedad del llamador no nil, lo limpia y lo llena con los índices de nodos obsoletos en orden de dependencias, excluyendo los nodos de ciclos obsoletos y los nodos bloqueados por esos ciclos; sus dos conteos de salida distinguen a los miembros de ciclos de los nodos posteriores bloqueados, y las entradas de la lista usan la misma convención de índices basados en cero codificados como puntero
TXLSWorkspaceDepGraph.HasRefUnstable reporta si algún nodo fue agregado con el indicador de referencia inestable, lo que permite al llamador evitar depender de una programación estática obsoleta cuando las referencias de fórmulas pueden cambiar en el momento de la evaluación; el grafo no resuelve esas referencias cambiantes por sí mismo
TXLSWorkspaceDepGraph.NodeCount cuenta los nodos de fórmulas, TXLSWorkspaceDepGraph.ReferenceCount cuenta las referencias copiadas, y TXLSWorkspaceDepGraph.EdgeCount reporta las aristas de dependencias construidas; llame a BuildEdges antes de consumir las estadísticas de aristas
TXLSWorkspaceDepGraph.WorkbookCount cuenta las identidades de libros internadas, incluidas las identidades introducidas por referencias, y TXLSWorkspaceDepGraph.WorkbookIdentities las enumera por índice basado en cero; estas cadenas de identidad son claves del grafo, no evidencia de que un archivo externo fue cargado
TXLSWorkspaceDepGraph.ComponentCount reporta el número de componentes fuertemente conexos después de la construcción de componentes, que es activada por MarkCyclesDirty, DirtyTopoOrder o el acceso a componentes; cada registro de Components aporta NodeStart, NodeCount y IsCycle
TXLSWorkspaceDepGraph.ComponentNodes expone el arreglo aplanado de índices de nodos basados en cero para esos componentes, indexado desde el NodeStart de un componente hasta NodeStart + NodeCount - 1; los conteos y registros indexados describen el grafo actual y deberían readquirirse tras la reconstrucción del grafo
Continúe con los miembros adicionales de la fachada XLSX y la visión general de la fachada XLSX para los puntos de entrada ordinarios del libro