HotXLS-dokumentasjon

CreateLoadedCellCursor metode

Oppretter en trekkmarkør over de lagrede cellene i en innlastet XLSX-arbeidsbok, med et valg for å ta med uavhengig stiledde tomceller

Syntaks

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

Traverseringsrekkefølge og kostnad

Markøren går gjennom arkene i samlingsrekkefølge, deretter cellene etter stigende rad og kolonne

SheetIndex, Row og Col er offentlige koordinater som starter på én

Materialiserte ark leses direkte fra sine tildelte 256-raders sparse-blokker, uten å bygge en sortert celleliste

Pakkede ark leses direkte gjennom iteratoren for pakket lagring, og forblir pakkede etter traverseringen

Markørtilstanden er konstant i forhold til arbeidsbokstørrelsen og tildeler ikke tabeller dimensjonert etter XLSX-rad- eller kolonnegrensene

Overbelastningen uten parametere hopper over bare-styled tomceller, lagrede Empty-plassholdere og lagrede Null-plassholdere

Send True for å ta med uavhengig stiledde tomme koordinater fra materialisert eller pakket lagring, uten å materialisere pakkede celler

Ustyled Empty- og Null-plassholdere forblir utelatt i begge moduser

Felter i øyeblikksbildet

FeltBetydning
SheetIndex / SheetNameIdentiteten til arket som eier cellen, ved fangsttidspunktet
Row / ColCellekoordinater som starter på én
StyleIndexXLSX-celleformatindeks fanget opp fra materialisert eller pakket lagring
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError eller xlckBlank
ValueEid Variant-verdi fanget opp for gjeldende celle
FormulaFormeltekst for formelceller, ellers en tom streng

Strenger og Variants i TXLSLoadedCellSnapshot er eide verdier og eksponerer ikke interne celle- eller pakkelagringspekere

For XLSX-formelceller er Value den for øyeblikket lagrede bufrede verdien, og traverseringen beregner ikke formelen på nytt

For xlckBlank er Value Unassigned, Formula er tom, og StyleIndex identifiserer det lagrede celleformatet

Tilstand, ugyldiggjøring og levetid

State er xlccBeforeFirst frem til det første vellykkede MoveNext, xlccActive mens Current er tilgjengelig, og xlccEof etter at traverseringen er fullført

Å lese Current før den første cellen eller etter EOF utløser EXLSLoadedCellCursorState

Å opprette eller slette lagrede celler, materialisering av pakket lagring, eksplisitte gjenoppbygginger av indekser, eller å legge til, slette, flytte eller tømme ark ugyldiggjør markøren

Det neste MoveNext- eller Current-kallet utløser da EXLSLoadedCellCursorInvalidated

Å endre verdien, formelen eller formatet i en eksisterende celle ugyldiggjør ikke markøren, og et allerede fanget øyeblikksbilde forblir uendret

Å frigi arbeidsboken før markøren utløser også EXLSLoadedCellCursorInvalidated, i stedet for å etterlate markøren med en hengende arbeidsbokpeker

Genereringsvalidering er fail-fast-deteksjon og gjør ikke samtidig mutasjon og traversering trådsikkert

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å