HotXLS-dokumentation

CreateLoadedCellCursor metode

Opretter en pull-cursor over gemte celler i en indlæst klassisk XLS-projektmappe med mulighed for at inkludere selvstændigt formaterede tomme celler

Syntaks

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

Gennemløbsrækkefølge og omkostninger

Cursor'en besøger regnearkene i samlingsrækkefølge og derefter cellerne efter stigende række og kolonne

SheetIndex, Row og Col er offentlige koordinater, der er 1-baserede

Gennemløbet følger direkte de allokerede grene i klassisk sparsom lagring, så cursortilstanden forbliver konstant og ikke allokerer arrays i størrelse svarende til regnearkets række- eller kolonnegrænser

Overloadet uden parametre springer tomme celler over og bevarer den eksisterende kontrakt for værdi- og formelgennemløb

Send True for at inkludere gemte tomme celler, hvis celle-XF adskiller sig fra den nedarvede formatering af række, kolonne eller regneark

Nedarvet formatering alene materialiserer eller udsender ikke en tom koordinate

Snapshot-felter

FeltBetydning
SheetIndex / SheetNameEjerregnearkets identitet på fangsttidspunktet
Row / ColCellekoordinater, der er 1-baserede
StyleIndexKlassisk XF-stilindeks
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula eller xlckBlank
ValueEjet Variant-værdi fanget til den aktuelle celle
FormulaFormeltekst for formelceller, ellers en tom streng

Strenge og Variants i TXLSLoadedCellSnapshot er ejede værdier og eksponerer ikke interne cellobjekter

For formelceller følger Value den klassiske projektmapps normale værdiadgangssemantik, herunder beregning, når det kræves

For xlckBlank er Value Unassigned, Formula er tom, og StyleIndex identificerer den gemte celle-XF

Tilstand og ugyldiggørelse

State er xlccBeforeFirst indtil det første vellykkede MoveNext, xlccActive, mens Current er tilgængelig, og xlccEof efter gennemløbets afslutning

Læsning af Current før den første celle eller efter EOF rejser EXLSLoadedCellCursorState

Oprettelse eller sletning af gemte celler, tilføjelse, sletning eller flytning af regneark eller udskiftning af projektmappens model ugyldiggør cursor'en

Det næste MoveNext- eller Current-kald rejser derefter EXLSLoadedCellCursorInvalidated

Ændring af en eksisterende celles værdi, formel eller format ugyldiggør ikke cursor'en, og et allerede fanget snapshot forbliver uændret

Eksempel

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;

Se også