Generacija strukture učitane radne knjige
Strukturne generacije omogućuju čitatelju da zadrži jeftine snimke i odbije obilazak nakon što se promijeni topologija radne knjige od koje ovisi
Izvori generacija
| Mehanizam | Generacija spremišta ćelija | Generacija zbirke radnih listova |
|---|---|---|
| Classic XLS | TXLSWorksheet.CellStructureGeneration | TXLSWorksheets.StructureGeneration |
| XLSX | TXLSXWorksheet.CellStructureGeneration ili TXLSXCells.StructureGeneration | TXLSXSheets.StructureGeneration |
Svako je svojstvo vrijednost UInt64 samo za čitanje, a točan iznos promjene nije ugovoren
Operacije koje poništavaju valjanost
Stvaranje, uklanjanje ili pražnjenje pohranjenih ćelija mijenja generaciju spremišta ćelija kada se topologija stvarno promijeni
Umetanje i brisanje redaka ili stupaca, premještanje koordinata, pakirano dodavanje ili materijalizacija te izričita ponovna izgradnja indeksa ćelija također poništavaju valjanost stanja obilaska spremišta ćelija
Dodavanje, brisanje, premještanje ili pražnjenje radnih listova mijenja generaciju zbirke radnih listova kada se zbirka stvarno promijeni
Operacije koje ne poništavaju valjanost
Promjena vrijednosti, formule, predmemorirane vrijednosti ili formata postojeće ćelije ne mijenja generaciju njezina spremišta ćelija
Preimenovanje ili aktiviranje radnog lista ne mijenja generaciju zbirke radnih listova, a bezdjelotvorna premještanja, izostala brisanja ili pražnjenje već prazne zbirke zadržavaju trenutačnu generaciju
Provjera valjanosti
Pozovite XlsValidateStructureGeneration prije napredovanja ili čitanja stanja obilaska stvorenog za raniju generaciju
Nesuglasnost podiže EXLSLoadedCellCursorInvalidated, omogućujući pozivatelju razlikovanje strukturnog poništavanja valjanosti od pogrešaka u podacima ili oblikovanju
ExpectedGeneration := Worksheet.CellStructureGeneration;
{ Read or retain traversal state }
XlsValidateStructureGeneration(
ExpectedGeneration,
Worksheet.CellStructureGeneration);
Pokazivač klasične radne knjige
IXLSWorkbook.CreateLoadedCellCursor snima zbirnu generaciju klasične radne knjige i provjerava je prije svakog poziva MoveNext i Current
Pokazivač obilazi izravno alocirane grane razrjeđenog spremišta s nepromjenjivim stanjem pokazivača i vraća snimke TXLSLoadedCellSnapshot u vlasništvu
Booleovo preopterećenje zamrzava uključuju li se samostalno stilizirane pohranjene prazne ćelije; naslijeđeni formati retka, stupca i radnog lista ne stvaraju prazne zapise pokazivača
Pokazivač XLSX radne knjige
TXLSXWorkbook.CreateLoadedCellCursor snima zakup u trajanju života radne knjige i zbirnu generaciju topologije dijeljenu svakim spremištem ćelija radnih listova i zbirkom radnih listova
Materijalizirani put čita razrjeđene bloke redaka izravno, dok pakirani put ponovno upotrebljava pakirani iterator bez materijalizacije ćelija ili zadržavanja unutarnjih pokazivača u snimcima
Booleovo preopterećenje može uključiti pohranjene prazne ćelije samo sa stilom u obje reprezentacije spremišta, dok nestilizirane rezervirane vrijednosti Empty i Null ostaju isključene
Otpuštanje radne knjige poništava valjanost njezina zakupa prije nego se spremište radnih listova oslobodi, pa kasniji pristup pokazivaču podiže EXLSLoadedCellCursorInvalidated
Granica istodobnosti
Provjere generacija pružaju samo otkrivanje s trenutačnim prekidom i ne čine istodobnu mutaciju radne knjige i obilazak sigurnima za niti