Documentazione HotXLS

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

CampoSignificato
SheetIndex / SheetNameIdentità del foglio di lavoro proprietario al momento dell'acquisizione
Row / ColCoordinate della cella in base 1
StyleIndexIndice di stile XF classico
Kind (TXLSLoadedCellKind)xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulao xlckBlank
ValueValore Variant di proprietà acquisito per la cella corrente
FormulaTesto 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;

Vedere anche