Dokumentace HotXLS

Metoda CreateLoadedCellCursor

Vytvoří pull kurzor nad uloženými buňkami v načteném sešitu XLSX, s volití zahrnout samostatně formátované prázdné buňky

Syntaxe

function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
function CreateLoadedCellCursor(
  AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;

Pořadí průchodu a náklady

Kurzor prochází listy v pořadí kolekce, poté buňky podle vzestupného řádku a sloupce

SheetIndex, Row a Col jsou veřejné souřadnice indexované od jedničky

Materializované listy se čtou přímo z jejich alokovaných řídkých bloků po 256 řádcích bez sestavování setříděného seznamu buněk

Zkomprimované listy se čtou přímo přes iterátor zkomprimovaného úložiště a po průchodu zůstávají zkomprimované

Stav kurzoru je konstantní vzhledem k velikosti sešitu a nealokuje pole dimenzovaná na limity řádků nebo sloupců XLSX

Přetížení bez parametrů přeskakuje prázdné buňky pouze se stylem, uložené zástupce Empty i uložené zástupce Null

Předáním True zahrnete samostatně formátované prázdné souřadnice z materializovaného i zkomprimovaného úložiště bez materializace zkomprimovaných buněk

Nestylovaní zástupci Empty a Null zůstávají v obou režimech vyloučeni

Pole snímku

PoleVýznam
SheetIndex / SheetNameIdentita vlastnícího listu v okamžiku zachycení
Row / ColSouřadnice buňky indexované od jedničky
StyleIndexIndex formátu buňky XLSX zachycený z materializovaného nebo zkomprimovaného úložiště
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError nebo xlckBlank
ValueVlastněná hodnota Variant zachycená pro aktuální buňku
FormulaText vzorce pro buňky se vzorcem, jinak prázdný řetězec

Řetězce a Varianty ve TXLSLoadedCellSnapshot jsou vlastněné hodnoty a nezpřístupňují interní ukazatele buněk ani zkomprimovaného úložiště

U buněk se vzorcem XLSX je Value aktuálně uložená kešovaná hodnota a průchod vzorec nepřepočítává

Pro xlckBlank je Value Unassigned, Formula je prázdný a StyleIndex identifikuje uložený formát buňky

Stav, zneplatnění a životnost

State je xlccBeforeFirst až do prvního úspěšného MoveNext, xlccActive dokud je Current k dispozici, a xlccEof po dokončení průchodu

Čtení Current před první buňkou nebo po EOF vyvolá EXLSLoadedCellCursorState

Vytváření nebo mazání uložených buněk, materializace zkomprimovaného úložiště, explicitní přestavby indexu nebo přidávání, mazání, přesouvání či mazání listů kurzor zneplatní

Další volání MoveNext nebo Current poté vyvolá EXLSLoadedCellCursorInvalidated

Změna hodnoty, vzorce nebo formátu existující buňky kurzor nezneplatní a již zachycený snímek zůstává nezměněn

Uvolnění sešitu dříve než kurzoru rovněž vyvolá EXLSLoadedCellCursorInvalidated místo ponechání kurzoru s visícím ukazatelem na sešit

Validace generací je fail-fast detekce a nečiní souběžnou mutaci a průchod bezpečnými pro vlákna

Příklad

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;

Viz také