CreateLoadedCellCursor metódus
Pull típusú kurzort hoz létre egy betöltött XLSX munkafüzet tárolt cellái felett, azzal a lehetőséggel, hogy önállóan formázott üres cellákat is belefoglaljon
Szintaxis
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
Bejárási sorrend és költség
A kurzor a munkalapokat a gyűjtemény sorrendjében, majd a cellákat növekvő sor- és oszlopsorrendben járja be
A SheetIndex, Row és Col 1-alapú nyilvános koordináták
A materializált munkalapok közvetlenül a lefoglalt, 256 soros ritka blokkjaikból olvashatók rendezett cellalista felépítése nélkül
A csomagolt munkalapok közvetlenül a csomagolt tárolás iterátorán keresztül olvashatók, és a bejárás után is csomagoltak maradnak
A kurzorállapot a munkafüzet méretére nézve állandó, és nem foglal le az XLSX sor- vagy oszloplimitjeinek megfelelő méretű tömböket
A paraméternélküli túlterhelés kihagyja a csak stílussal rendelkező üres cellákat, a tárolt Empty helyőrzőket és a tárolt Null helyőrzőket
Adjon meg True értéket az önállóan formázott üres koordináták belefoglalásához materializált vagy csomagolt tárolásból csomagolt cellák materializálása nélkül
A formázatlan Empty és Null helyőrzők mindkét módban kizárva maradnak
Pillanatkép-mezők
| Mező | Jelentés |
|---|---|
SheetIndex / SheetName | A tulajdonos munkalap identitása a rögzítés időpontjában |
Row / Col | 1-alapú cellakoordináták |
StyleIndex | Materializált vagy csomagolt tárolásból rögzített XLSX cellaformátum-index |
Kind | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError vagy xlckBlank |
Value | Az aktuális cellához rögzített, saját tulajdonú Variant érték |
Formula | Képlet szövege képletcellák esetén, egyébként üres karakterlánc |
A TXLSLoadedCellSnapshot karakterláncai és Variant értékei saját tulajdonú értékek, és nem fedik fel a belső cella- vagy csomagolt tárolási pointereket
Az XLSX képletcelláknál a Value a jelenleg tárolt gyorsítótárazott érték, és a bejárás nem számolja újra a képletet
xlckBlank esetén a Value Unassigned, a Formula üres, a StyleIndex pedig a tárolt cellaformátumot azonosítja
Állapot, érvénytelenítés és élettartam
A State xlccBeforeFirst az első sikeres MoveNext-ig, xlccActive, amíg a Current elérhető, és xlccEof a bejárás befejezése után
A Current olvasása az első cella előtt vagy az EOF után EXLSLoadedCellCursorState kivételt vált ki
Tárolt cellák létrehozása vagy törlése, a csomagolt tárolás materializálása, explicit index-újraépítések, illetve munkalapok hozzáadása, törlése, mozgatása vagy törlése érvényteleníti a kurzort
A következő MoveNext vagy Current hívás ezután EXLSLoadedCellCursorInvalidated kivételt vált ki
Egy meglévő cella értékének, képletének vagy formátumának módosítása nem érvényteleníti a kurzort, és egy már rögzített pillanatkép változatlan marad
A munkafüzet kurzor előtti felszabadítása szintén EXLSLoadedCellCursorInvalidated kivételt vált ki ahelyett, hogy függő munkafüzet-pointert hagyna a kurzorban
A generáció-érvényesítés fail-fast észlelés, és nem teszi szálbiztossá az egyidejű módosítást és bejárást
Példa
Cursor := Workbook.CreateLoadedCellCursor;
while Cursor.MoveNext do
begin
Cell := Cursor.Current;
Memo1.Lines.Add(Format('%s!R%dC%d = %s',
[Cell.SheetName, Cell.Row, Cell.Col, VarToStr(Cell.Value)]));
end;