HotXLS-Dokumentation

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

FeldBedeutung
SheetIndex / SheetNameIdentität des besitzenden Arbeitsblatts zum Zeitpunkt der Erfassung
Row / ColEinsbasierte Zellkoordinaten
StyleIndexClassic-XF-Stilindex
Kind (TXLSLoadedCellKind)xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulaoder xlckBlank
ValueEigener Variant-Wert, der für die aktuelle Zelle erfasst wurde
FormulaFormeltext 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;

Siehe auch