HotXLS-dokumentation

Metoden CreateLoadedCellCursor

Skapar en pull-markör över lagrade celler i en inläsad klassisk XLS-arbetsbok, med möjlighet att ta med självständigt formaterade tomceller

Syntax

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

Traverseringsordning och kostnad

Markören besöker kalkylbladen i samlingsordning och därefter cellerna efter stigande rad och kolumn

SheetIndex, Rowoch Col är ettbaserade publika koordinater

Traverseringen följer allokerade grenar i den klassiska glesa lagringen direkt, så markörstatusen förblir konstant och allokerar inga matriser dimensionerade efter kalkylbladets rad- eller kolumngränser

Överlagringen utan parametrar hoppar över tomceller och bevarar det befintliga kontraktet för traversering av värden och formler

Skicka True för att ta med lagrade tomceller vars cell-XF skiljer sig från det ärvda rad-, kolumn- eller kalkylbladsformatet

Ärvd formatering ensamt materialiserar eller emitterar ingen tom koordinat

Ögonblicksbildsfält

FältBetydelse
SheetIndex / SheetNameDet ägande kalkylbladets identitet vid fångstillfället
Row / ColEttbaserade cellkoordinater
StyleIndexKlassiskt XF-formatindex
Kind (TXLSLoadedCellKind)xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulaeller xlckBlank
ValueEget Variant-värde fångat för den aktuella cellen
FormulaFormeltext för formelceller, annars en tom sträng

Strängar och Variants i TXLSLoadedCellSnapshot är egna värden och exponerar inte interna cellobjekt

För formelceller följer Value den klassiska arbetsbokens normala semantik för värdeåtkomst, inklusive beräkning när det krävs

För xlckBlankär Value is Unassigned, Formula är tom och StyleIndex identifierar det lagrade cell-XF:et

Status och ogiltigförklaring

State (type TXLSLoadedCellCursorStateär xlccBeforeFirst fram till det första lyckade MoveNext, xlccActive medan Current är tillgänglig och xlccEof efter att traverseringen har slutförts

Läsning av Current före den första cellen eller efter EOF utlöser EXLSLoadedCellCursorState

Att skapa eller ta bort lagrade celler, lägga till, ta bort eller flytta kalkylblad, eller att ersätta arbetsboksmodellen, ogiltigförklarar markören

Nästa MoveNext - eller Current -anrop utlöser därefter EXLSLoadedCellCursorInvalidated

Att ändra en befintlig cells värde, formel eller format ogiltigförklarar inte markören, och en redan fångad ögonblicksbild förblir oförändrad

Exempel

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 även