HotXLS Docs

Composant TXLSWorkbookViewer

TXLSWorkbookViewer est un contrôle VCL qui affiche les feuilles de calcul des deux moteurs de classeur sans Microsoft Excel ni automatisation COM

Sources du classeur

Navigation

Le contrôle fournit des barres de défilement horizontales et verticales, le défilement par molette de la souris, le déplacement par glisser de la souris, l'extension de plage par Shift, les touches fléchées, Home, Page Up, Page Down et la navigation par Tab

GoToCell sélectionne une ligne et une colonne, SelectRange sélectionne un rectangle, NextWorksheet et PreviousWorksheet changent de feuille, et SelectedRange expose la référence A1 normalisée

Édition et calcul

Définissez Editable à True pour autoriser les éditions par F2, double-clic, touches imprimables, Delete et barre de formule ; les cellules verrouillées d'une feuille protégée restent en lecture seule

BeginEdit, CommitEdit et CancelEdit contrôlent l'éditeur en place, tandis que EditSelectedCell et FormulaBarText prennent en charge une barre de formule externe

Les éditions validées reconnaissent les formules, booléens, entiers, nombres à virgule flottante, textes et entrées vides, puis recalculent les formules dépendantes et invalident les caches de mise en forme conditionnelle et de pagination

Undo et Redo utilisent un historique circulaire borné en O(1) ; définissez UndoLimit pour contrôler la capacité, ou à zéro pour désactiver l'historique

Delete ou ClearSelectedRange efface la sélection comme une seule transaction ; Ctrl+C et CopySelectedRange copient du texte Unicode séparé par des tabulations, tandis que Ctrl+V, PasteSelectedRange et PasteText collent un bloc de texte rectangulaire au coin supérieur gauche de la sélection avec une seule entrée d'annulation

Le préflight de protection et de structure rejette une plage entièrement bloquée avant mutation ; l'annulation et le rétablissement préservent le texte enrichi natif, les caches de formules, les styles et les cellules absentes dans les deux modèles, avec le même contrôle de protection à chaque tentative d'historique

Les formules matricielles existantes, les régions de tables de données et les collages multi-cellules intersectant une fusion sont rejetés ; les éditions d'ancres fusionnées uniques et les effacements de fusions entières préservent la géométrie de fusion, tandis que les effacements partiels de plages fusionnées sont rejetés

Le moteur partagé TXLSWorkbookEditHistory peut aussi être instancié sans contrôle ; voir les transactions d'édition headless pour les règles de coordonnées, de cycle de vie, de calcul et de limites d'opérations

Sélection de référence de formule

Appelez BeginReferencePick pendant qu'un éditeur de formule hôte collecte une référence de feuille de calcul ; chaque changement de sélection déclenche OnReferencePick avec la plage A1 courante jusqu'à l'appel de EndReferencePick

Rendu

Le visualiseur utilise les largeurs de colonnes, hauteurs de lignes et texte d'affichage formaté de chaque feuille de calcul, restitue les remplissages pleins classiques et le style de police, et fournit des en-têtes, des quadrillages et des couleurs de sélection configurables

Pour les feuilles de calcul XLSX, le visualiseur restitue également les remplissages conditionnels, les couleurs et emphases de police, les formats numériques, les échelles de couleurs, les barres de données directionnelles positives et négatives, les dégradés, les bordures, les axes, les valeurs masquées et toutes les familles de jeux d'icônes intégrées

Le visualiseur met en cache un évaluateur de mise en forme conditionnelle préparé pour la feuille active, si bien que le défilement et les repeints de sélection ne rescannent pas le classeur ; appelez RefreshConditionalFormats après avoir modifié valeurs, formules, plages ou règles conditionnelles dans un classeur attaché

Le rendu XLSX inspecte les cellules creuses et les superpositions de styles par intervalle sans indexer les coordonnées vides, si bien que le défilement ne matérialise pas les cellules vides visibles ni n'agrandit le stockage de la feuille

Aperçu avant impression

Définissez PrintPreview à True pour afficher la feuille active via le TXLSPaginationModel partagé qu'utilisent la géométrie et le comptage des pages PDF

PreviewPage est en base un et borné à PreviewPageCount ; les commandes flèches, Page Up, Page Down, Home, End, molette et défilement vertical naviguent dans les pages logiques tant que l'aperçu est actif

PaginationModel expose le modèle en cache, SavePreviewPageAsMetafile écrit la page logique sélectionnée en EMF, et RefreshPagination reconstruit le cache après des changements de valeurs, dimensions, paramètres d'impression, sauts, titres ou dessins

Événements

Exemple Delphi

Viewer := TXLSWorkbookViewer.Create(Self);
Viewer.Parent := Self;
Viewer.Align := alClient;
Viewer.XlsxWorkbook := Workbook;
Viewer.Editable := True;
Viewer.SelectRange(2, 1, 5, 3);
Caption := Viewer.SelectedRange;
Viewer.GoToCell(2, 3);
Viewer.FormulaBarText := '=A1*2';
Viewer.Undo;
Viewer.Redo;
Viewer.RefreshConditionalFormats;
Viewer.PrintPreview := True;
Viewer.PreviewPage := 1;
Viewer.SavePreviewPageAsMetafile('Preview.emf');
Viewer.GoToCell(12, 4);
Caption := Viewer.WorksheetName + ': ' + Viewer.SelectedCellText;

Voir Demo\Delphi\WorkbookViewer pour un visualiseur complet créé à l'exécution, avec ouverture de fichier et contrôles de feuille de calcul