TXLSWorkbookViewer Component
TXLSWorkbookViewer er et VCL-kontrolelement, der viser regneark fra begge projektmappe-motorer uden Microsoft Excel eller COM-automatisering
Workbook sources
- Tildel
Workbookfor at vise en eksisterendeTXLSWorkbook - Tildel
XlsxWorkbookfor at vise en eksisterendeTXLSXWorkbook - Kald
LoadFromFilefor at lade fremviseren eje og indlæse en XLS-, XLSX-, XLSM-, XLTX-, XLTM- eller ODS-projektmappe - Kald
ClearWorkbook, før du frigør en eksternt ejet projektmappe, der stadig er tilknyttet
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
OnSelectionChangerapporterer den nyvalgte række og kolonneOnWorksheetChangeudløses, efter det aktive regneark er skiftetOnBeforeEditkan ændre det foreslåede input eller afvise redigeringOnAfterEditrapporterer en gemt celleditingOnReferencePickpublicerer det valgte A1-område i referencetilstand
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