Dokumentácia HotXLS

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

PoleVýznam
SheetIndex / SheetNameIdentita vlastniaceho hárku v okamihu zachytenia
Row / ColSúradnice bunky indexované od jednotky
StyleIndexIndex štýlu classic XF
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula alebo xlckBlank
ValueVlastnená hodnota Variant zachytená pre aktuálnu bunku
FormulaText 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;

Pozri tiež