HotXLS dokumentáció

A betöltött munkafüzet struktúragenerációja

A strukturális generációk lehetővé teszik, hogy az olvasó olcsó pillanatképeket tartson meg, és elutasítsa a bejárást, miután a munkafüzet azon topológiája megváltozott, amelytől függ

Generációforrások

EngineCellatárolás generációjaMunkalapgyűjtemény generációja
Classic XLSTXLSWorksheet.CellStructureGenerationTXLSWorksheets.StructureGeneration
XLSXTXLSXWorksheet.CellStructureGeneration vagy TXLSXCells.StructureGenerationTXLSXSheets.StructureGeneration

Minden tulajdonság csak olvasható UInt64 érték, és a változásának pontos mértéke nem szerződéses

Érvénytelenítő műveletek

Tárolt cellák létrehozása, eltávolítása vagy törlése megváltoztatja a cellatárolás generációját, amikor a topológia ténylegesen változik

Sor- vagy oszlopbeszúrás és -törlés, koordinátamozgatás, csomagolt hozzáfűzés vagy materializálás, valamint az explicit cellaindex-újraépítések szintén érvénytelenítik a cellatárolás bejárási állapotát

Munkalapok hozzáadása, törlése, mozgatása vagy törlése megváltoztatja a munkalapgyűjtemény generációját, amikor a gyűjtemény ténylegesen változik

Nem érvénytelenítő műveletek

Egy meglévő cella értékének, képletének, gyorsítótárazott értékének vagy formátumának módosítása nem változtatja meg a cellatárolás generációját

Egy munkalap átnevezése vagy aktiválása nem változtatja meg a munkalapgyűjtemény generációját, a hatástalan mozgatások, hiányzó törlések vagy egy már üres gyűjtemény kiürítése pedig megtartja az aktuális generációt

Validáció

Hívja meg az XlsValidateStructureGeneration metódust, mielőtt egy korábbi generációhoz létrehozott bejárási állapotot előremozdítana vagy kiolvasna

Az eltérés EXLSLoadedCellCursorInvalidated kivételt vált ki, lehetővé téve a hívók számára, hogy megkülönböztessék a strukturális érvénytelenítést az adat- vagy formátumhibáktól

ExpectedGeneration := Worksheet.CellStructureGeneration;

{ Read or retain traversal state }

XlsValidateStructureGeneration(
  ExpectedGeneration,
  Worksheet.CellStructureGeneration);

Klasszikus munkafüzet-kurzor

Az IXLSWorkbook.CreateLoadedCellCursor rögzíti a klasszikus munkafüzet aggregált generációját, és minden MoveNext és Current hívás előtt érvényesíti azt

A kurzor közvetlenül járja be a lefoglalt ritka tárolási ágakat állandó kurzorállapot mellett, és saját tulajdonú TXLSLoadedCellSnapshot értékeket ad vissza

A logikai túlterhelés rögzíti, hogy az önállóan formázott tárolt üres cellák belefoglalandók-e; az örökölt sor-, oszlop- és munkalapformátumok nem hoznak létre üres kurzorbejegyzéseket

XLSX munkafüzet-kurzor

A TXLSXWorkbook.CreateLoadedCellCursor a munkafüzet élettartamára szóló foglalást és aggregált topológiagenerációt rögzít, amelyet minden munkalap cellatárolója és a munkalapgyűjtemény megoszt

A materializált útvonal közvetlenül olvassa a ritka sorblokkokat, míg a csomagolt útvonal a csomagolt iterátort használja újra cellák materializálása vagy belső pointerek pillanatképekben való tárolása nélkül

A logikai túlterhelés mindkét tárolási reprezentációban belefoglalhatja a csak stílussal rendelkező tárolt üres cellákat, míg a formázatlan Empty és Null helyőrzők kizárva maradnak

A munkafüzet felszabadítása érvényteleníti a foglalását, mielőtt a munkalaptárolás felszabadulna, így a későbbi kurzor-hozzáférés EXLSLoadedCellCursorInvalidated kivételt vált ki

Egyidejűségi határ

A generáció-ellenőrzések csak fail-fast észlelést nyújtanak, és nem teszik szálbiztossá a munkafüzet egyidejű módosítását és bejárását

Lásd még