CreateLoadedCellCursor-Methode
Erstellt einen Pull-Cursor über die gespeicherten Zellen einer geladenen Classic-XLS-Arbeitsmappe, mit der Option, unabhängig formatierte Leerzellen einzuschließen
Syntax
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
Durchlaufreihenfolge und Kosten
Der Cursor besucht die Arbeitsblätter in Auflistungsreihenfolge und danach die Zellen nach aufsteigender Zeile und Spalte
SheetIndex, Rowund Col sind öffentliche, einsbasierte Koordinaten
Der Durchlauf folgt direkt den zugewiesenen Verzweigungen des Classic-Sparspeichers, sodass der Cursorzustand konstant bleibt und keine Arrays in Größe der Arbeitsblatt-Zeilen- oder Spaltengrenzen alloziert werden
Die parameterlose Überladung überspringt Leerzellen und bewahrt den bestehenden Wert-und-Formel-Durchlaufvertrag
Übergeben Sie True , um gespeicherte Leerzellen einzuschließen, deren Zell-XF vom geerbten Format der Zeile, Spalte oder des Arbeitsblatts abweicht
Allein geerbte Formatierung erzeugt keine Leerzellen-Koordinate und gibt sie nicht aus
Momentaufnahmefelder
| Feld | Bedeutung |
|---|---|
SheetIndex / SheetName | Identität des besitzenden Arbeitsblatts zum Zeitpunkt der Erfassung |
Row / Col | Einsbasierte Zellkoordinaten |
StyleIndex | Classic-XF-Stilindex |
Kind (TXLSLoadedCellKind) | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulaoder xlckBlank |
Value | Eigener Variant-Wert, der für die aktuelle Zelle erfasst wurde |
Formula | Formeltext für Formelzellen, andernfalls eine leere Zeichenfolge |
Zeichenfolgen und Variants in TXLSLoadedCellSnapshot sind eigene Werte und geben keine internen Zellobjekte frei
Bei Formelzellen folgt Value der normalen Wertzugriffssemantik der Classic-Arbeitsmappe, einschließlich Berechnung bei Bedarf
Für xlckBlankist Value is Unassigned, Formula ist leer, und StyleIndex identifiziert den gespeicherten Zell-XF
Zustand und Ungültigkeit
State ist TXLSLoadedCellCursorState, bis das erste xlccBeforeFirst erfolgreich ist, MoveNext, solange xlccActive verfügbar ist, und Current , nachdem der Durchlauf abgeschlossen ist xlccEof after traversal completes
Das Lesen von Current vor der ersten Zelle oder nach EOF löst EXLSLoadedCellCursorState
Das Erstellen oder Löschen gespeicherter Zellen, das Hinzufügen, Löschen oder Verschieben von Arbeitsblättern oder das Ersetzen des Arbeitsmappenmodells macht den Cursor ungültig
Der nächste MoveNext - oder Current -Aufruf löst dann EXLSLoadedCellCursorInvalidated
Das Ändern des Werts, der Formel oder des Formats einer bestehenden Zelle macht den Cursor nicht ungültig, und eine bereits erfasste Momentaufnahme bleibt unverändert
Beispiel
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;