Dokumentace HotXLS

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ů

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

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