CreateLoadedCellCursor metoda
Kreira kursor sa povlačenjem podataka nad uskladištenim ćelijama u učitanoj XLSX radnoj svesci, uz opciju uključivanja samostalno stilizovanih praznih ćelija
Sintaksa
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
Redosled i trošak obilaska
Kursor obilazi radne listove u redosledu kolekcije, a zatim ćelije prema rastućem redu i koloni
SheetIndex, Row i Col javne su koordinate koje počinju od jedan
Materijalizovani radni listovi čitaju se direktno iz njihovih alociranih razređenih blokova od po 256 redova bez izgradnje sortiranog spiska ćelija
Spakovani radni listovi čitaju se direktno kroz iterator spakovanog skladišta i nakon obilaska ostaju spakovani
Stanje kursora konstantno je u odnosu na veličinu radne sveske i ne alocira nizove dimenzionisana prema ograničenjima redova ili kolona XLSX-a
Preopterećenje bez parametara preskače prazne ćelije samo sa stilom, uskladištene rezervisane sadržaje Empty i uskladištene rezervisane sadržaje Null
Prosledite True za uključivanje samostalno stilizovanih praznih koordinata iz materijalizovanog ili spakovanog skladišta bez materijalizacije spakovanih ćelija
Nestilizovani rezervisani sadržaji Empty i Null ostaju isključeni u oba režima
Polja snimka
| Polje | Značenje |
|---|---|
SheetIndex / SheetName | Identitet radnog lista u vlasništvu u trenutku snimanja |
Row / Col | Koordinate ćelije koje počinju od jedan |
StyleIndex | XLSX indeks formata ćelije snimljen iz materijalizovanog ili spakovanog skladišta |
Kind | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError ili xlckBlank |
Value | Vrednost Variant u vlasništvu snimljena za tekuću ćeliju |
Formula | Tekst formule za ćelije sa formulom, inače prazan string |
Stringovi i Variant vrednosti u TXLSLoadedCellSnapshot vrednosti su u vlasništvu i ne izlažu unutrašnje objekte ćelija ni pokazivače na spakovano skladište
Kod XLSX ćelija sa formulom Value je trenutno uskladištena keširana vrednost, a obilazak ne izračunava formulu ponovo
Za xlckBlank vrednost Value je Unassigned, Formula je prazna, a StyleIndex identifikuje uskladišteni format ćelije
Stanje, poništavanje važenja i životni vek
State je xlccBeforeFirst do prvog uspešnog MoveNext, xlccActive dok je Current dostupan, i xlccEof nakon završetka obilaska
Čitanje Current pre prve ćelije ili nakon EOF-a podiže EXLSLoadedCellCursorState
Kreiranje ili brisanje uskladištenih ćelija, materijalizacija spakovanog skladišta, eksplicitna ponovna izgradnja indeksa, kao i dodavanje, brisanje, premeštanje ili pražnjenje radnih listova poništavaju važenje kursora
Sledeći poziv MoveNext ili Current tada podiže EXLSLoadedCellCursorInvalidated
Promena vrednosti, formule ili formata postojeće ćelije ne poništava važenje kursora, a već snimljeni snimak ostaje nepromenjen
Otpuštanje radne sveske pre kursora takođe podiže EXLSLoadedCellCursorInvalidated umesto da ostavi kursor sa visećim pokazivačem na radnu svesku
Provera generacija je otkrivanje sa trenutnim prekidom i ne čini istovremenu mutaciju i obilazak bezbednim po nitima
Primer
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;