TXLSWorkbookViewer-Komponente
TXLSWorkbookViewer ist ein VCL-Steuerelement, das Arbeitsblätter aus beiden Arbeitsmappen-Engines ohne Microsoft Excel oder COM-Automatisierung anzeigt
Arbeitsmappenquellen
- Weisen Sie
Workbookzu, um eine vorhandeneTXLSWorkbookanzuzeigen - Weisen Sie
XlsxWorkbookzu, um eine vorhandeneTXLSXWorkbookanzuzeigen - Rufen Sie
LoadFromFileauf, damit der Viewer eine XLS-, XLSX-, XLSM-, XLTX-, XLTM- oder ODS-Arbeitsmappe besitzt und lädt - Rufen Sie
ClearWorkbookauf, bevor Sie eine extern verwaltete Arbeitsmappe freigeben, die noch angehängt ist
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
OnSelectionChangemeldet die neu ausgewählte Zeile und SpalteOnWorksheetChangewird nach dem Wechsel des aktiven Arbeitsblatts ausgelöstOnBeforeEditkann die vorgeschlagene Eingabe ändern oder die Bearbeitung ablehnenOnAfterEditmeldet eine übernommene ZellbearbeitungOnReferencePickveröffentlicht den ausgewählten A1-Bereich im Reference-Pick-Modus
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