Docs HotXLS

Méthode CreateLoadedCellCursor

Crée un curseur d'extraction sur les cellules stockées d'un classeur XLS classique chargé, avec une option pour inclure les cellules vides avec mise en forme propre

Syntaxe

function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
function CreateLoadedCellCursor(
  AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;

Ordre et coût de parcours

Le curseur visite les feuilles de calcul dans l'ordre de la collection, puis les cellules par ligne et colonne croissantes

SheetIndex, Rowet Col sont des coordonnées publiques en base 1

Le parcours suit directement les branches allouées du stockage clairsemé classique, de sorte que l'état du curseur reste constant et n'alloue pas de tableaux dimensionnés aux limites de lignes ou de colonnes de la feuille de calcul

La surcharge sans paramètre ignore les vides et préserve le contrat de parcours valeurs-et-formules existant

Passez True pour inclure les cellules vides stockées dont le XF de cellule diffère du format hérité de la ligne, de la colonne ou de la feuille de calcul

La mise en forme héritée seule ne matérialise ni n'émet de coordonnée vide

Champs d'instantané

ChampSignification
SheetIndex / SheetNameIdentité de la feuille de calcul propriétaire au moment de la capture
Row / ColCoordonnées de cellule en base 1
StyleIndexIndex de style XF classique
Kind (TXLSLoadedCellKind)xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulaou xlckBlank
ValueValeur Variant détenue capturée pour la cellule courante
FormulaTexte de formule pour les cellules à formule, sinon une chaîne vide

Les chaînes et les Variants de TXLSLoadedCellSnapshot sont des valeurs détenues et n'exposent pas les objets de cellules internes

Pour les cellules à formule, Value suit la sémantique normale d'accès aux valeurs du classeur classique, y compris le calcul lorsque nécessaire

Pour xlckBlank, Value vaut Unassigned, Formula est vide et StyleIndex identifie le XF de cellule stocké

État et invalidation

State vaut TXLSLoadedCellCursorStatejusqu'au premier xlccBeforeFirst réussi, MoveNexttant que xlccActive est disponible, et Current une fois le parcours terminé xlccEof after traversal completes

Lire Current avant la première cellule ou après EOF lève EXLSLoadedCellCursorState

La création ou la suppression de cellules stockées, l'ajout, la suppression ou le déplacement de feuilles de calcul, ou le remplacement du modèle de classeur invalident le curseur

Le prochain appel à MoveNext ou Current lève alors EXLSLoadedCellCursorInvalidated

Modifier la valeur, la formule ou le format d'une cellule existante n'invalide pas le curseur, et un instantané déjà capturé reste inchangé

Exemple

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;

Voir aussi