Documentación HotXLS

Generación de la estructura del libro de trabajo cargado

Las generaciones estructurales permiten a un lector retener instantáneas de bajo costo y rechazar el recorrido después de que la topología del libro de trabajo de la que depende haya cambiado

Orígenes de generación

MotorGeneración del almacén de celdasGeneración de la colección de hojas de cálculo
XLS clásicoTXLSWorksheet.CellStructureGenerationTXLSWorksheets.StructureGeneration
XLSXTXLSXWorksheet.CellStructureGeneration or TXLSXCells.StructureGenerationTXLSXSheets.StructureGeneration

Cada propiedad es un valor UInt64 de solo lectura y la cantidad exacta en la que cambia no forma parte del contrato

Operaciones que invalidan

Crear, quitar o limpiar celdas almacenadas cambia la generación del almacén de celdas cuando la topología realmente cambia

La inserción y eliminación de filas o columnas, el movimiento de coordenadas, la anexión empaquetada o la materialización y las recompilaciones explícitas del índice de celdas también invalidan el estado de recorrido del almacén de celdas

Agregar, eliminar, mover o limpiar hojas de cálculo cambia la generación de la colección de hojas de cálculo cuando la colección realmente cambia

Operaciones que no invalidan

Cambiar el valor, la fórmula, el valor en caché o el formato de una celda existente no cambia la generación de su almacén de celdas

Renombrar o activar una hoja de cálculo no cambia la generación de la colección de hojas de cálculo, y los movimientos sin efecto, las eliminaciones inexistentes o la limpieza de una colección ya vacía conservan la generación actual

Validación

Llame a XlsValidateStructureGeneration antes de hacer avanzar o leer el estado de recorrido creado para una generación anterior

Una discrepancia genera EXLSLoadedCellCursorInvalidated, lo que permite a los llamadores distinguir la invalidación estructural de los errores de datos o de formato

ExpectedGeneration := Worksheet.CellStructureGeneration;

{ Read or retain traversal state }

XlsValidateStructureGeneration(
  ExpectedGeneration,
  Worksheet.CellStructureGeneration);

Cursor del libro de trabajo clásico

IXLSWorkbook.CreateLoadedCellCursor captura la generación agregada del libro de trabajo clásico y la valida antes de cada llamada a MoveNext y Current

El cursor recorre directamente las ramas asignadas del almacenamiento disperso con un estado de cursor constante y devuelve valores TXLSLoadedCellSnapshot de propiedad del llamador

La sobrecarga booleana inmoviliza si se incluyen los blancos almacenados con estilo independiente; los formatos heredados de fila, columna y hoja de cálculo no crean entradas en blanco en el cursor

Cursor del libro de trabajo XLSX

TXLSXWorkbook.CreateLoadedCellCursor captura una concesión ligada al tiempo de vida del libro de trabajo y una generación de topología agregada compartidas por todos los almacenes de celdas de las hojas de cálculo y la colección de hojas de cálculo

La ruta materializada lee los bloques dispersos de filas directamente, mientras que la ruta empaquetada reutiliza el iterador empaquetado sin materializar celdas ni retener punteros internos en las instantáneas

La sobrecarga booleana puede incluir los blancos almacenados que solo tienen estilo en cualquiera de las dos representaciones de almacenamiento, mientras que los marcadores de posición Empty y Null sin estilo permanecen excluidos

Liberar el libro de trabajo invalida su concesión antes de que se libere el almacenamiento de las hojas de cálculo, de modo que el acceso posterior al cursor genera EXLSLoadedCellCursorInvalidated

Límite de concurrencia

Las comprobaciones de generación solo proporcionan detección de falla inmediata y no hacen que la mutación y el recorrido simultáneos del libro de trabajo sean seguros para subprocesos

Véase también