Komponenta TXLSWorkbookViewer
TXLSWorkbookViewer je VCL ovládací prvek, který zobrazuje listy z obou grafů sešitů bez Microsoft Excelu nebo automatizace COM
Zdroje sešitů
- Přiřazením
Workbookzobrazíte existujícíTXLSWorkbook - Přiřazením
XlsxWorkbookzobrazíte existujícíTXLSXWorkbook - Volání
LoadFromFilenechá prohlížeč vlastnit a načíst sešit XLS, XLSX, XLSM, XLTX, XLTM nebo ODS - Voláním
ClearWorkbookuvolníte externě vlastněný sešit, který je stále připojen
Navigace
Ovládací prvek poskytuje vodorovné i svislé posuvníky, rolování kolečkem myši, tažení myší, rozšiřování rozsahu pomocí Shift, šipky, Home, Page Up, Page Down a navigaci Tabem
GoToCell vybere řádek a sloupec, SelectRange vybere obdélník, NextWorksheet a PreviousWorksheet přepínají listy a SelectedRange zpřístupňuje normalizovaný odkaz A1
Editace a výpočet
Nastavte Editable na True a povolíte úpravy přes F2, dvojité kliknutí, tisknutelné klávesy, Delete a formula bar; uzamčené buňky na chráněném listu zůstávají jen pro čtení
BeginEdit, CommitEdit a CancelEdit řídí přímočasný editor, zatímco EditSelectedCell a FormulaBarText podporují externí formula bar
Potvrzené úpravy rozpoznají vzorce, logické hodnoty, celá čísla, čísla s plovoucí řádovou čárkou, text a prázdný vstup, poté přepočítají závislé vzorce a zneplatní mezipaměti podmíněného formátu a stránkování
Undo a Redo používají ohraničenou kruhovou historii O(1); nastavte UndoLimit pro řízení kapacity nebo na nulu pro vypnutí historie
Delete nebo ClearSelectedRange smaže výběr jako jednu transakci; Ctrl+C a CopySelectedRange kopírují unicode text oddělený tabulátory, zatímco Ctrl+V, PasteSelectedRange a PasteText vloží obdélníkový textový blok do levého horního rohu výběru s jednou položkou v historii undo
Ochrana a strukturální preflight odmítne celý blokovaný rozsah ještě před mutací; undo a redo zachovávají nativní rich text, cache vzorců, styly i chybějící buňky v obou modelech, s touž kontrolou ochrany při každém pokusu o zápis do historie
Existující maticové vzorce, oblasti datových tabulek a vkládání více buněk křížící sloučení se odmítnou; úpravy jediné ukotvené buňky sloučení a vymazání celého sloučení zachovají geometrii sloučení, zatímco částečné vymazání sloučeného rozsahu se odmítne
Sdílený engine TXLSWorkbookEditHistory lze instancovat i bez ovládacího prvku; pravidla pro souřadnice, životní cyklus, výpočet a limity operací popisuje sekce bezhlavé editační transakce
Výběr odkazů pro vzorce
Voláním BeginReferencePick v momentě, kdy editor vzorců v hostiteli sbírá odkaz na list; každá změna výběru vyvolá OnReferencePick s aktuálním rozsahem A1, dokud není voláno EndReferencePick
Vykreslování
Prohlížeč používá šířky sloupců, výšky řádků a formátovaný zobrazovaný text každého listu, vykresluje plné výplně a styly písma klasického modelu a nabízí konfigurovatelné barvy záhlaví, mřížky a výběru
U listů XLSX prohlížeč navíc vykresluje podmíněné výplně, barvy a zvýraznění písma, formáty čísel, barevné škály, směrové kladné i záporné datové proužky, přechody, ohraničení, osy, skryté hodnoty a všechny vestavěné rodiny sad ikon
Prohlížeč si u aktivního listu uchovává jeden připravený vyhodnocovač podmíněného formátu, takže rolování a překreslování výběru neproskenuje sešit znovu; po změně hodnot, vzorců, oblastí nebo podmíněných pravidel v připojeném sešitu zavolejte RefreshConditionalFormats
Vykreslování XLSX kontroluje řídké buňky a intervalové překryvy stylů bez indexování prázdných souřadnic, takže rolování nematerializuje viditelné prázdné buňky ani nerozšiřuje úložiště listu
Náhled tisku
Nastavením PrintPreview na True zobrazíte aktivní list přes sdílený TXLSPaginationModel, který používá geometrie a počítání stránek PDF
PreviewPage je číslovaná od 1 a přitlačí se na PreviewPageCount; příkazy šipky, Page Up, Page Down, Home, End, kolečko myši a svislé rolování navigují logické stránky, dokud je náhled aktivní
PaginationModel zpřístupňuje model v mezipaměti, SavePreviewPageAsMetafile zapíše vybranou logickou stránku jako EMF a RefreshPagination po změnách hodnot, rozměrů, tiskových nastavení, zlomů, titulků nebo kresby přestaví mezipaměť
Události
OnSelectionChangehlásí nově vybraný řádek a sloupecOnWorksheetChangese spustí po změně aktivního listuOnBeforeEditmůže změnit navrhovaný vstup nebo editaci zamítnoutOnAfterEdithlásí potvrzenou úpravu buňkyOnReferencePickpublikuje vybraný rozsah A1 v režimu výběru odkazů
Příklad pro 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;
Kompletní za běhu vytvořený prohlížeč s otevíráním souborů a ovládacími prvky listů najdete v Demo\Delphi\WorkbookViewer