Metóda CreateLoadedCellCursor
Vytvorí pull kurzor nad uloženými bunkami v načítanom zošite classic XLS, s možnosťou zahrnúť samostatne štýlované prázdne bunky
Syntax
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
Poradie prechodu a náklady
Kurzor prechádza hárky v poradí kolekcie, potom bunky podľa vzostupného riadku a stĺpca
SheetIndex, Row a Col sú verejné súradnice indexované od jednotky
Prechod nasleduje priamo alokované vetvy riedkeho úložiska classic, takže stav kurzora ostáva konštantný a nealokuje polia dimenzované na limity riadkov alebo stĺpcov hárku
Preťaženie bez parametrov preskakuje prázdne bunky a zachováva existujúci kontrakt prechodu hodnotami a vzorcami
Odovzdaním True zahrnete uložené prázdne bunky, ktorých XF bunky sa odlišuje od zdedeného formátu riadku, stĺpca alebo hárku
Iba zdedené formátovanie nevytvára ani nevysiela prázdnu súradnicu
Polia snímky
| Pole | Význam |
|---|---|
SheetIndex / SheetName | Identita vlastniaceho hárku v okamihu zachytenia |
Row / Col | Súradnice bunky indexované od jednotky |
StyleIndex | Index štýlu classic XF |
Kind | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula alebo xlckBlank |
Value | Vlastnená hodnota Variant zachytená pre aktuálnu bunku |
Formula | Text vzorca pre bunky so vzorcom, inak prázdny reťazec |
Reťazce a Varianty v TXLSLoadedCellSnapshot sú vlastnené hodnoty a nesprístupňujú interné objekty buniek
Pri bunkách so vzorcom nasleduje Value bežnú sémantiku prístupu k hodnotám klasického zošita, vrátane výpočtu, ak je vyžadovaný
Pre xlckBlank je Value Unassigned, Formula je prázdny a StyleIndex identifikuje uložené XF bunky
Stav a zneplatnenie
State je xlccBeforeFirst až po prvé úspešné MoveNext, xlccActive pokiaľ je Current k dispozícii, a xlccEof po dokončení prechodu
Čítanie Current pred prvou bunkou alebo po EOF vyvolá EXLSLoadedCellCursorState
Vytváranie alebo mazanie uložených buniek, pridávanie, mazanie či presúvanie hárkov alebo nahradenie modelu zošita kurzor zneplatní
Ďalšie volanie MoveNext alebo Current potom vyvolá EXLSLoadedCellCursorInvalidated
Zmena hodnoty, vzorca alebo formátu existujúcej bunky kurzor nezneplatní a už zachytená snímka ostáva nezmenená
Prí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;