HotXLS-dokumentation

TXLSWorkbookViewer Component

TXLSWorkbookViewer er et VCL-kontrolelement, der viser regneark fra begge projektmappe-motorer uden Microsoft Excel eller COM-automatisering

Workbook sources

Navigation

Kontrolelementet leverer vandrette og lodrette rullebjælker, rulning med musehjulet, træk med musen, Shift-områdeudvidelse, piletaster samt Home-, Page Up-, Page Down- og Tab-navigation

GoToCell vælger række og kolonne, SelectRange vælger et rektangel, NextWorksheet og PreviousWorksheet skifter ark, og SelectedRange eksponerer den normaliserede A1-reference

Redigering og beregning

Sæt Editable til True for at tillade redigering via F2, dobbeltklik, almindelige taster, Delete og formellinjen; låste celler på et beskyttet regneark forbliver skrivebeskyttede

BeginEdit, CommitEdit og CancelEdit styrer den indlejrede editor, mens EditSelectedCell og FormulaBarText understøtter en ekstern formellinje

Gemte redigeringer genkender formler, booleans, heltal, kommatal, tekst og tom input og genberegner derefter afhængige formler og invaliderer cacherne for betinget formatering og paginering

Undo og Redo bruger en O(1)-begrænset cirkulær historik; sæt UndoLimit for at styre kapaciteten, eller til nul for at deaktivere historikken

Sletning eller ClearSelectedRange rydder markeringen som én transaktion; Ctrl+C og CopySelectedRange kopierer Unicode tab-separeret tekst, mens Ctrl+V, PasteSelectedRange og PasteText indsætter en rektangulær tekstblok ved markeringens øverste venstre hjørne med én undo-post

Beskyttelses- og strukturrel preflight afviser et helt blokeret område før mutation; undo og redo bevarer native rich text, formelcacher, typografier og fraværende celler i begge modeller med det samme beskyttelsestjek ved hvert historikforsøg

Eksisterende arrayformler, datatabelområder og multicelle-indsættelser, der krydser en fletning, afvises; enkelte redigeringer af et flettet anker og rydning af hele fletningen bevarer flettegeometrien, mens delvis rydning af et flettet område afvises

Den delte TXLSWorkbookEditHistory-motor kan også instantieres uden en kontrol; se headless-redigeringstransaktioner for regler om koordinater, levetid, beregning og operationsgrænser

Formelreferencevalg

Kald BeginReferencePick, mens en værts formeleditor indsamler en regnearksreference; hver markeringændring udløser OnReferencePick med det aktuelle A1-område, indtil EndReferencePick kaldes

Rendering

Fremviseren bruger hvert regnearks kolonnebredder, rækkehøjder og formaterede visningstekst, renderer klassiske solide udfyldninger og skrifttypografi og leverer konfigurerbare sidehoveder, gitterlinjer og markeringsfarver

For XLSX-regneark renderer fremviseren også betingede udfyldninger, skriftfarver og fremhævning, talformater, farveskalaer, retningsbestemte positive og negative databjælker, gradienter, kanter, akser, skjulte værdier og alle de indbyggede ikonsætfamilier

Fremviseren cacher én forberedt evaluering af betinget formatering for det aktive regneark, så rulning og genoptegning ved markering ikke genskanner projektmappen; kald RefreshConditionalFormats, efter du har ændret værdier, formler, områder eller betingede regler i en tilknyttet projektmappe

XLSX-rendering tjekker sparsomme celler og intervalvise typografioverlays uden at indeksere tomme koordinater, så rulning ikke materialiserer synlige tomme celler eller udvider regnearkets lager

Udskriftsvisning

Sæt PrintPreview til True for at vise det aktive regneark gennem den delte TXLSPaginationModel, der også bruges til PDF-sidogeometri og -optælling

PreviewPage er 1-baseret og begrænses til PreviewPageCount; pil-, Page Up-, Page Down-, Home-, End-, musehjuls- og lodrulle-kommandoerne navigerer logiske sider, mens forhåndsvisningen er aktiv

PaginationModel eksponerer den cachede model, SavePreviewPageAsMetafile skriver den valgte logiske side som EMF, og RefreshPagination genopbygger cachen efter ændringer af værdier, dimensioner, udskriftsindstillinger, sideskift, titler eller tegninger

Hændelser

Delphi example

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;

Se Demo\Delphi\WorkbookViewer for en komplet, ved kørsel oprettet fremviser med filåbning og regnearkskontroller