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
| Pole | Význam |
|---|---|
SheetIndex / SheetName | Identita vlastnícího listu v okamžiku zachycení |
Row / Col | Souřadnice buňky indexované od jedničky |
StyleIndex | Index stylu classic XF |
Kind | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula nebo xlckBlank |
Value | Vlastněná hodnota Variant zachycená pro aktuální buňku |
Formula | Text 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;