Metodo CreateLoadedCellCursor
Crea un cursore pull sulle celle memorizzate di un workbook XLS classico caricato, con un'opzione per includere le celle vuote con stile proprio
Sintassi
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
Ordine e costo di attraversamento
Il cursore visita i fogli di lavoro nell'ordine della raccolta, poi le celle per riga e colonna crescenti
SheetIndex, Rowe Col sono coordinate pubbliche in base 1
L'attraversamento segue direttamente i rami allocati dell'archiviazione sparsa classica, così lo stato del cursore resta costante e non alloca array dimensionati sui limiti di riga o colonna del foglio di lavoro
L'overload senza parametri salta le celle vuote e preserva il contratto di attraversamento valori-e-formule esistente
Passare True per includere le celle vuote memorizzate il cui XF di cella differisce dal formato ereditato dalla riga, dalla colonna o dal foglio di lavoro
Il solo formato ereditato non materializza né emette una coordinata vuota
Campi dello snapshot
| Campo | Significato |
|---|---|
SheetIndex / SheetName | Identità del foglio di lavoro proprietario al momento dell'acquisizione |
Row / Col | Coordinate della cella in base 1 |
StyleIndex | Indice di stile XF classico |
Kind (TXLSLoadedCellKind) | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulao xlckBlank |
Value | Valore Variant di proprietà acquisito per la cella corrente |
Formula | Testo della formula per le celle con formula, altrimenti una stringa vuota |
Le stringhe e i Variant in TXLSLoadedCellSnapshot sono valori di proprietà e non espongono gli oggetti cella interni
Per le celle con formula, Value segue la normale semantica di accesso ai valori del workbook classico, incluso il calcolo quando richiesto
Per xlckBlank, Value è Unassigned, Formula è vuota e StyleIndex identifica l'XF di cella memorizzato
Stato e invalidazione
State è TXLSLoadedCellCursorStatefino al primo xlccBeforeFirst riuscito, MoveNextfinché xlccActive è disponibile, e Current al termine dell'attraversamento xlccEof after traversal completes
Leggere Current prima della prima cella o dopo EOF genera EXLSLoadedCellCursorState
La creazione o l'eliminazione di celle memorizzate, l'aggiunta, l'eliminazione o lo spostamento di fogli di lavoro, o la sostituzione del modello del workbook invalidano il cursore
La successiva chiamata a MoveNext o Current genera allora EXLSLoadedCellCursorInvalidated
Modificare il valore, la formula o il formato di una cella esistente non invalida il cursore, e uno snapshot già acquisito resta invariato
Esempio
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;