HotXLS-Dokumentation

TXLSWorkbookViewer-Komponente

TXLSWorkbookViewer ist ein VCL-Steuerelement, das Arbeitsblätter aus beiden Arbeitsmappen-Engines ohne Microsoft Excel oder COM-Automatisierung anzeigt

Arbeitsmappenquellen

Navigation

Das Steuerelement bietet horizontale und vertikale Bildlaufleisten, Bildlauf mit dem Mausrad, Ziehen mit der Maus, Bereichserweiterung mit Shift, Pfeiltasten sowie Navigation mit Pos1, Bild auf, Bild ab und Tab

GoToCell wählt eine Zeile und Spalte aus, SelectRange wählt ein Rechteck aus, NextWorksheet und PreviousWorksheet wechseln die Blätter, und SelectedRange legt die normalisierte A1-Referenz offen

Bearbeiten und Berechnung

Setzen Sie Editable auf True, um Bearbeitung per F2, Doppelklick, druckbaren Tasten, Entf und Formelleiste zuzulassen; gesperrte Zellen auf einem geschützten Arbeitsblatt bleiben schreibgeschützt

BeginEdit, CommitEdit und CancelEdit steuern den In-place-Editor, während EditSelectedCell und FormulaBarText eine externe Formelleiste unterstützen

Übernommene Eingaben erkennen Formeln, Booleans, Ganzzahlen, Gleitkommawerte, Text und leere Eingaben, berechnen danach abhängige Formeln neu und invalidieren die Caches für bedingte Formatierung und Paginierung

Undo und Redo verwenden eine O(1)-begrenzte Ringhistorie; über UndoLimit steuern Sie die Kapazität, mit null deaktivieren Sie die Historie ganz

Löschen oder ClearSelectedRange leert die Auswahl als eine Transaktion; Strg+C und CopySelectedRange kopieren Unicode-Text mit Tabulator-Trennung, während Strg+V, PasteSelectedRange und PasteText einen rechteckigen Textblock an der oberen linken Ecke der Auswahl einfügen — mit einem einzigen Undo-Eintrag

Schutz- und Struktur-Preflight weist einen gesamten blockierten Bereich ab, bevor etwas geändert wird; Undo und Redo bewahren nativen Rich-Text, Formel-Caches, Stile und fehlende Zellen in beiden Modellen, mit derselben Schutzprüfung bei jedem Historienversuch

Vorhandene Array-Formeln, Datenbereichs-Regionen und Mehrzellen-Einfügungen, die eine verbundene Zelle schneiden, werden abgelehnt; Einzelbearbeitungen am Anker einer verbundenen Zelle und das Leeren kompletter verbundener Bereiche bewahren die Verbundgeometrie, während partielles Leeren verbundener Bereiche abgelehnt wird

Die gemeinsame TXLSWorkbookEditHistory-Engine lässt sich auch ohne Control instanziieren; siehe Headless-Editing-Transaktionen für Koordinaten-, Lebensdauer-, Berechnungs- und Operationslimit-Regeln

Auswahl von Formelreferenzen

Rufen Sie BeginReferencePick auf, während ein übergeordneter Formeleditor eine Arbeitsblattreferenz einsammelt; bei jeder Änderung der Auswahl feuert OnReferencePick mit dem aktuellen A1-Bereich, bis EndReferencePick aufgerufen wird

Rendern

Der Viewer verwendet Spaltenbreiten, Zeilenhöhen und formatierten Anzeigetext jedes Arbeitsblatts, rendert klassische feste Füllungen und Schrifteinstellungen und bietet konfigurierbare Kopfzeilen, Gitterlinien und Auswahlfarben

Für XLSX-Arbeitsblätter rendert der Viewer zusätzlich bedingte Füllungen, Schriftfarben und -hervorhebungen, Zahlenformate, Farbskalen, gerichtete positive und negative Datenbalken, Farbverläufe, Rahmen, Achsen, ausgeblendete Werte und alle eingebauten Icon-Set-Familien

Der Viewer hält einen vorbereiteten Evaluator für bedingte Formatierung für das aktive Arbeitsblatt im Cache, sodass Bildlauf und Auswahl-Repaints die Arbeitsmappe nicht neu durchsuchen; rufen Sie RefreshConditionalFormats auf, nachdem Sie Werte, Formeln, Bereiche oder bedingte Regeln einer angehängten Arbeitsmappe geändert haben

Das XLSX-Rendering prüft sparse Zellen und Intervall-Style-Overlays, ohne leere Koordinaten zu indizieren; beim Scrollen werden also keine sichtbaren Leerzellen materialisiert und der Speicher des Arbeitsblatts nicht aufgebläht

Druckvorschau

Setzen Sie PrintPreview auf True, um das aktive Arbeitsblatt über das gemeinsame TXLSPaginationModel anzuzeigen, das auch die PDF-Seitengeometrie und -zählung verwendet

PreviewPage ist einsbasiert und wird auf PreviewPageCount begrenzt; die Pfeiltasten, Bild auf, Bild ab, Pos1, Ende, das Mausrad und der vertikale Bildlauf navigieren über logische Seiten, solange die Vorschau aktiv ist

PaginationModel legt das zwischengespeicherte Modell offen, SavePreviewPageAsMetafile schreibt die gewählte logische Seite als EMF, und RefreshPagination baut den Cache nach Änderungen an Werten, Abmessungen, Druckeinstellungen, Umbrüchen, Titeln oder Zeichnungen neu auf

Events

Delphi-Beispiel

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;

Siehe Demo\Delphi\WorkbookViewer für einen vollständigen zur Laufzeit erstellten Viewer mit Dateiöffnungs- und Arbeitsblattsteuerelementen