Dokumentácia HotXLS

Generovanie štruktúry načítaného zošita

Štrukturálne generácie umožňujú čítačke uchovávať nenáročné snímky a odmietnuť prechod potom, čo sa zmenila topológia zošita, na ktorej je závislá

Zdroje generácií

EngineGenerácia úložiska buniekGenerácia kolekcie hárkov
Classic XLSTXLSWorksheet.CellStructureGenerationTXLSWorksheets.StructureGeneration
XLSXTXLSXWorksheet.CellStructureGeneration alebo TXLSXCells.StructureGenerationTXLSXSheets.StructureGeneration

Každá vlastnosť je hodnota UInt64 len na čítanie a presná miera jej zmeny nie je súčasťou kontraktu

Zneplatňujúce operácie

Vytváranie, odstraňovanie alebo mazanie uložených buniek mení generáciu úložiska buniek, keď sa topológia skutočne zmení

Vkladanie a mazanie riadkov alebo stĺpcov, presun súradníc, zkomprimované pridávanie alebo materializácia a explicitné prestavby indexu buniek tiež zneplatňujú stav prechodu úložiskom buniek

Pridávanie, mazanie, presúvanie či mazanie hárkov mení generáciu kolekcie hárkov, keď sa kolekcia skutočne zmení

Nezneplatňujúce operácie

Zmena hodnoty, vzorca, kešovanej hodnoty alebo formátu existujúcej bunky nemení generáciu jej úložiska buniek

Premenovanie alebo aktivácia hárku nemení generáciu kolekcie hárkov a operácie bez účinku, mazanie neexistujúcich položiek alebo vyčistenie už prázdnej kolekcie ponechávajú aktuálnu generáciu

Validácia

Pred posunom alebo čítaním stavu prechodu vytvoreného pre skoršiu generáciu zavolajte XlsValidateStructureGeneration

Nesúlad vyvolá EXLSLoadedCellCursorInvalidated, čo volajúcim umožňuje odlíšiť štrukturálne zneplatnenie od chýb dát alebo formátu

ExpectedGeneration := Worksheet.CellStructureGeneration;

{ Read or retain traversal state }

XlsValidateStructureGeneration(
  ExpectedGeneration,
  Worksheet.CellStructureGeneration);

Kurzor klasického zošita

IXLSWorkbook.CreateLoadedCellCursor zachytí agregovanú generáciu klasického zošita a validuje ju pred každým volaním MoveNext a Current

Kurzor prechádza priamo alokované vetvy riedkeho úložiska s konštantným stavom kurzora a vracia vlastnené hodnoty TXLSLoadedCellSnapshot

Boolean preťaženie zmrazí, či sa zahrňujú samostatne štýlované uložené prázdne bunky; zdedené formáty riadku, stĺpca a hárku nevytvárajú prázdne položky kurzora

Kurzor zošita XLSX

TXLSXWorkbook.CreateLoadedCellCursor zachytí rezerváciu na životnosť zošita a agregovanú topologickú generáciu zdieľanú úložiskom buniek každého hárku a kolekciou hárkov

Materializovaná cesta číta riedke bloky riadkov priamo, zatiaľ čo zkomprimovaná cesta znovu používa zkomprimovaný iterátor bez materializácie buniek alebo uchovávania interných ukazovateľov v snímkach

Boolean preťaženie môže v oboch reprezentáciách úložiska zahrnúť uložené prázdne bunky len so štýlom, zatiaľ čo neštýlovaní zástupcovia Empty a Null ostanú vylúčení

Uvoľnenie zošita zneplatní jeho rezerváciu skôr, než sa úložisko hárkov uvoľní, takže neskorší prístup ku kurzoru vyvolá EXLSLoadedCellCursorInvalidated

Hranica súbežnosti

Kontroly generácií poskytujú len fail-fast detekciu a nerobia súbežnú mutáciu zošita a prechod bezpečnými pre vlákna

Pozri tiež