HotXLS dokumentáció

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 / SheetNameA tulajdonos munkalap identitása a rögzítés időpontjában
Row / Col1-alapú cellakoordináták
StyleIndexMaterializált vagy csomagolt tárolásból rögzített XLSX cellaformátum-index
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError vagy xlckBlank
ValueAz aktuális cellához rögzített, saját tulajdonú Variant érték
FormulaKé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;

Lásd még