Dokumentace HotXLS

Metoda CreateLoadedCellCursor

Vytvoří pull kurzor nad uloženými buňkami v načteném sešitu classic XLS, 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

Průchod následuje přímo alokované větve řídkého úložiště classic, takže stav kurzoru zůstává konstantní a nealokuje pole dimenzovaná na limity řádků nebo sloupců listu

Přetížení bez parametrů přeskakuje prázdné buňky a zachovává stávající kontrakt průchodu hodnotami a vzorci

Předáním True zahrnete uložené prázdné buňky, jejichž XF buňky se liší od zděděného formátu řádku, sloupce nebo listu

Pouze zděděné formátování nevytváří ani nevysílá prázdnou souřadnici

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 stylu classic XF
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula 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í objekty buněk

U buněk se vzorcem následuje Value běžnou sémantiku přístupu k hodnotám klasického sešitu, včetně výpočtu, je-li vyžadován

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

Stav a zneplatnění

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, přidávání, mazání či přesouvání listů nebo nahrazení modelu sešitu 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

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é