CreateLoadedCellCursor-methode
Maakt een pull-cursor aan over opgeslagen cellen in een geladen klassieke XLS-werkmap, met een optie om onafhankelijk opgemaakte lege cellen op te nemen
Syntaxis
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
Doorloopvolgorde en kosten
De cursor bezoekt werkbladen in verzamelvolgorde en daarna cellen op oplopende rij en kolom
SheetIndex, Rowen Col zijn openbare coördinaten met basis 1
De doorloop volgt rechtstreeks de toegewezen takken van de klassieke sparse-opslag, zodat de cursorstatus constant blijft en er geen arrays worden gereserveerd op de grootte van de rij- of kolomlimieten van het werkblad
De overload zonder parameters slaat lege cellen over en behoudt het bestaande contract voor de doorloop van waarden en formules
Geef True door om opgeslagen lege cellen op te nemen waarvan de cel-XF afwijkt van het overgeërfde formaat van rij, kolom of werkblad
Alleen overgeërfde opmaak materialiseert geen lege coördinaat en geeft er geen door
Momentopnamevelden
| Veld | Betekenis |
|---|---|
SheetIndex / SheetName | Identiteit van het eigenende werkblad op het moment van vastleggen |
Row / Col | Celcoördinaten met basis 1 |
StyleIndex | Klassieke XF-stijlindex |
Kind (TXLSLoadedCellKind) | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulaof xlckBlank |
Value | Eigen Variant-waarde vastgelegd voor de huidige cel |
Formula | Formuletekst voor formulecellen, anders een lege tekenreeks |
Tekenreeksen en Variants in TXLSLoadedCellSnapshot zijn waarden in eigendom en leggen geen interne celobjecten bloot
Voor formulecellen volgt Value de normale semantiek voor waardetoegang van de klassieke werkmap, inclusief berekening wanneer dat nodig is
Voor xlckBlankis Value is Unassigned, is Formula leeg en identificeert StyleIndex de opgeslagen cel-XF
Status en ongeldigverklaring
State (type TXLSLoadedCellCursorStateis xlccBeforeFirst tot de eerste geslaagde MoveNext, xlccActive zolang Current beschikbaar is, en xlccEof nadat de doorloop is voltooid
Het lezen van Current vóór de eerste cel of na EOF veroorzaakt EXLSLoadedCellCursorState
Het aanmaken of verwijderen van opgeslagen cellen, het toevoegen, verwijderen of verplaatsen van werkbladen, of het vervangen van het werkmapmodel maakt de cursor ongeldig
De daaropvolgende aanroep van MoveNext of Current veroorzaakt dan EXLSLoadedCellCursorInvalidated
Het wijzigen van de waarde, formule of opmaak van een bestaande cel maakt de cursor niet ongeldig, en een reeds vastgelegde momentopname blijft ongewijzigd
Voorbeeld
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;