Documentație HotXLS

Metoda CreateLoadedCellCursor

Creează un cursor de tip pull peste celulele stocate într-un registru de lucru clasic XLS încărcat, cu opțiunea de a include golurile stilizate independent

Sintaxă

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

Ordinea și costul parcurgerii

Cursorul vizitează foile de lucru în ordinea colecției, apoi celulele în ordine crescătoare pe rând și coloană

SheetIndex, Row și Col sunt coordonate publice cu indexare de la 1

Parcurgerea urmează direct ramurile alocate de stocare rară clasică, astfel încât starea cursorului rămâne constantă și nu alocă vectori dimensionați după limitele de rând sau coloană ale foii de lucru

Supraîncărcarea fără parametri sare peste goluri și păstrează contractul existent de parcurgere a valorilor și formulelor

Passați True pentru a include celulele goale stocate al căror XF de celulă diferă de formatul moștenit de rând, coloană sau foaie de lucru

Doar formatarea moștenită nu materializează și nu emite o coordonată goală

Câmpurile instantaneului

CâmpSemnificație
SheetIndex / SheetNameIdentitatea foii de lucru deținătoare la momentul capturării
Row / ColCoordonate de celulă cu indexare de la 1
StyleIndexIndex de stil clasic XF
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula sau xlckBlank
ValueValoare Variant deținută capturată pentru celula curentă
FormulaTextul formulei pentru celulele cu formulă, altfel un șir gol

Șirurile și Variant-urile din TXLSLoadedCellSnapshot sunt valori deținute și nu expun obiecte interne de celulă

Pentru celulele cu formulă, Value urmează semantica normală de acces la valori a registrului de lucru clasic, inclusiv calculul când este necesar

Pentru xlckBlank, Value este Unassigned, Formula este gol, iar StyleIndex identifică XF-ul celulei stocate

Stare și invalidare

State este xlccBeforeFirst până la primul MoveNext reușit, xlccActive cât timp Current este disponibil și xlccEof după finalizarea parcurgerii

Citirea Current înainte de prima celulă sau după EOF ridică EXLSLoadedCellCursorState

Crearea sau ștergerea de celule stocate, adăugarea, ștergerea sau mutarea foilor de lucru, sau înlocuirea modelului registrului de lucru invalidează cursorul

Următorul apel MoveNext sau Current ridică atunci EXLSLoadedCellCursorInvalidated

Schimbarea valorii, formulei sau formatului unei celule existente nu invalidează cursorul, iar un instantaneu deja capturat rămâne neschimbat

Exemplu

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;

Consultați și