Docs HotXLS

Génération de structure du classeur chargé

Les générations structurelles permettent à un lecteur de conserver des instantanés peu coûteux et de rejeter le parcours une fois que la topologie du classeur dont il dépend a changé

Sources de génération

MoteurGénération du magasin de cellulesGénération de la collection de feuilles de calcul
XLS classiqueTXLSWorksheet.CellStructureGenerationTXLSWorksheets.StructureGeneration
XLSXTXLSXWorksheet.CellStructureGeneration ou TXLSXCells.StructureGenerationTXLSXSheets.StructureGeneration

Chaque propriété est une valeur UInt64 en lecture seule et l'ampleur exacte de son changement n'est pas contractuelle

Opérations invalidantes

La création, la suppression ou le vidage de cellules stockées change la génération du magasin de cellules lorsque la topologie change réellement

L'insertion et la suppression de lignes ou de colonnes, le déplacement de coordonnées, l'ajout compacté ou la matérialisation, et les reconstructions explicites d'index de cellules invalident également l'état de parcours du magasin de cellules

L'ajout, la suppression, le déplacement ou le vidage de feuilles de calcul change la génération de la collection de feuilles lorsque la collection change réellement

Opérations non invalidantes

Modifier la valeur, la formule, la valeur en cache ou le format d'une cellule existante ne change pas sa génération de magasin de cellules

Renommer ou activer une feuille de calcul ne change pas la génération de la collection de feuilles, et les déplacements sans effet, les suppressions d'éléments absents ou le vidage d'une collection déjà vide conservent la génération courante

Validation

Appelez XlsValidateStructureGeneration avant de faire avancer ou de lire un état de parcours créé pour une génération antérieure

Une incompatibilité lève EXLSLoadedCellCursorInvalidated, permettant aux appelants de distinguer l'invalidation structurelle des erreurs de données ou de format

ExpectedGeneration := Worksheet.CellStructureGeneration;

{ Read or retain traversal state }

XlsValidateStructureGeneration(
  ExpectedGeneration,
  Worksheet.CellStructureGeneration);

Curseur du classeur classique

IXLSWorkbook.CreateLoadedCellCursor capture la génération agrégée du classeur classique et la valide avant chaque appel à MoveNext et Current

Le curseur parcourt directement les branches allouées du stockage clairsemé avec un état de curseur constant et renvoie des valeurs TXLSLoadedCellSnapshot détenues

La surcharge booléenne fige l'inclusion des vides stockés avec mise en forme propre ; les formats hérités de ligne, de colonne et de feuille de calcul ne créent pas d'entrées de curseur vides

Curseur du classeur XLSX

TXLSXWorkbook.CreateLoadedCellCursor capture un bail de durée de vie du classeur et une génération de topologie agrégée partagée par chaque magasin de cellules de feuille et la collection de feuilles

Le chemin matérialisé lit directement les blocs de lignes clairsemés, tandis que le chemin compacté réutilise l'itérateur compacté sans matérialiser de cellules ni retenir de pointeurs internes dans les instantanés

La surcharge booléenne peut inclure les vides stockés avec style seul dans les deux représentations de stockage, tandis que les espaces réservés Empty et Null sans style restent exclus

La libération du classeur invalide son bail avant que le stockage des feuilles ne soit libéré, de sorte qu'un accès ultérieur au curseur lève EXLSLoadedCellCursorInvalidated

Limite de concurrence

Les vérifications de génération fournissent une détection fail-fast uniquement et ne rendent pas thread-safe la mutation et le parcours concurrents du classeur

Voir aussi