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é
| Champ | Signification |
|---|---|
SheetIndex / SheetName | Identité de la feuille de calcul propriétaire au moment de la capture |
Row / Col | Coordonnées de cellule en base 1 |
StyleIndex | Index de style XF classique |
Kind (TXLSLoadedCellKind) | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulaou xlckBlank |
Value | Valeur Variant détenue capturée pour la cellule courante |
Formula | Texte 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;