Dokumentacija HotXLS

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

PoljeZnačenje
SheetIndex / SheetNameIdentitet radnog lista u vlasništvu u trenutku snimanja
Row / ColKoordinate ćelije koje počinju od jedan
StyleIndexXLSX indeks formata ćelije snimljen iz materijalizovanog ili spakovanog skladišta
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError ili xlckBlank
ValueVrednost Variant u vlasništvu snimljena za tekuću ćeliju
FormulaTekst 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;

Vidi takođe