Dokumentacja HotXLS

Komponent TXLSWorkbookViewer

TXLSWorkbookViewer to kontrolka VCL wyświetlająca arkusze z obu silników skoroszytów — bez Microsoft Excel i bez automatyzacji COM

Źródła skoroszytu

Nawigacja

Kontrolka udostępnia poziome i pionowe paski przewijania, przewijanie kółkiem myszy, przeciąganie myszą, rozszerzanie zaznaczenia z Shiftem oraz nawigację strzałkami, Home, Page Up, Page Down i Tab

GoToCell zaznacza wiersz i kolumnę, SelectRange zaznacza prostokąt, NextWorksheet i PreviousWorksheet przełączają arkusze, a SelectedRange udostępnia znormalizowane odwołanie A1

Edycja i obliczanie

Ustaw Editable na True, aby zezwolić na edycję przez F2, podwójne kliknięcie, klawisze znaków, Delete i pasek formuły; zablokowane komórki w chronionym arkuszu pozostają tylko do odczytu

BeginEdit, CommitEdit i CancelEdit sterują edytorem w miejscu, a EditSelectedCell i FormulaBarText obsługują zewnętrzny pasek formuły

Zatwierdzone edycje rozpoznają formuły, wartości logiczne, liczby całkowite, zmiennoprzecinkowe, tekst i puste wejście, po czym przeliczają formuły zależne i unieważniają cache formatowania warunkowego oraz paginacji

Undo i Redo używają cyklicznej historii o ograniczonej złożoności O(1); ustaw UndoLimit, aby sterować pojemnością, albo zero, aby wyłączyć historię

Usunięcie albo ClearSelectedRange czyści zaznaczenie jako jedną transakcję; Ctrl+C i CopySelectedRange kopiują tekst Unicode rozdzielany tabulatorami, podczas gdy Ctrl+V, PasteSelectedRangei PasteText wklejają prostokątny blok tekstu w lewym górnym rogu zaznaczenia z jednym wpisem undo

Preflight ochrony i struktury odrzuca cały zablokowany zakres przed mutacją; undo i redo zachowują natywny tekst sformatowany, pamięci podręczne formuł, style i nieobecne komórki w obu modelach, z tą samą kontrolą ochrony przy każdej próbie historii

Istniejące formuły tablicowe, regiony tabel danych i wielokomórkowe wklejenia przecinające scalenie są odrzucane; pojedyncze edycje scalonego zakotwiczenia i czyszczenie całego scalenia zachowują geometrię scalenia, podczas gdy częściowe czyszczenie scalonego zakresu jest odrzucane

Współdzielony silnik TXLSWorkbookEditHistory może być też tworzony bez kontrolki; zobacz transakcje edycji bezgłowej, aby poznać reguły współrzędnych, okresu życia, obliczeń i limitów operacji

Pobieranie odwołań do formuł

Wywołaj BeginReferencePick, gdy zewnętrzny edytor formuł zbiera odwołanie do arkusza; każda zmiana zaznaczenia zgłasza OnReferencePick z bieżącym zakresem A1, dopóki nie zostanie wywołane EndReferencePick

Renderowanie

Przeglądarka korzysta z szerokości kolumn, wysokości wierszy i sformatowanego tekstu wyświetlania każdego arkusza, renderuje klasyczne wypełnienia pełne i style czcionek oraz zapewnia konfigurowalne nagłówki, linie siatki i kolory zaznaczenia

Dla arkuszy XLSX przeglądarka renderuje dodatkowo warunkowe wypełnienia, kolory i wyróżnienia czcionek, formaty liczb, skale kolorów, kierunkowe dodatnie i ujemne paski danych, gradienty, obramowania, osie, ukryte wartości oraz wszystkie wbudowane rodziny zestawów ikon

Przeglądarka cache'uje jeden przygotowany ewaluator formatowania warunkowego dla aktywnego arkusza, więc przewijanie i odświeżanie zaznaczenia nie przeskanowuje ponownie skoroszytu; wywołaj RefreshConditionalFormats po zmianie wartości, formuł, zakresów lub reguł warunkowych w podpiętym skoroszycie

Renderowanie XLSX obchodzi rzadkie komórki i nakładki stylów interwałowych bez indeksowania pustych współrzędnych, więc przewijanie nie materializuje widocznych pustych komórek ani nie powiększa magazynu arkusza

Podgląd wydruku

Ustaw PrintPreview na True, aby wyświetlić aktywny arkusz przez współdzielony model TXLSPaginationModel używany do geometrii i liczenia stron PDF

PreviewPage jest numerowane od 1 i jest przycinane do PreviewPageCount; strzałki, Page Up, Page Down, Home, End, kółko myszy i pionowe przewijanie nawigują po stronach logicznych, gdy podgląd jest aktywny

PaginationModel udostępnia cache'owany model, SavePreviewPageAsMetafile zapisuje wybraną stronę logiczną jako EMF, a RefreshPagination przebudowuje cache po zmianach wartości, wymiarów, ustawień wydruku, podziałów, tytułów lub obiektów rysowanych

Zdarzenia

Przykład dla 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;

Zobacz Demo\Delphi\WorkbookViewer — kompletny przykład przeglądarki tworzonej w czasie działania, z otwieraniem plików i kontrolkami arkuszy