TXLSWorkbookViewer Component
TXLSWorkbookViewer is een VCL-besturingselement dat werkbladen van beide werkmap-engines weergeeft zonder Microsoft Excel of COM-automatisering
Werkmapbronnen
- Toewijzen
Workbookom een bestaande weer te geven vanTXLSWorkbook - Toewijzen
XlsxWorkbookom een bestaande weer te geven vanTXLSXWorkbook - Aanroepen
LoadFromFileom de viewer eigenaar te laten zijn van en een XLS-, XLSX-, XLSM-, XLTX-, XLTM- of ODS-werkmap te laten laden - Aanroepen
ClearWorkbookvoordat u een extern beheerde werkmap vrijgeeft die nog steeds is gekoppeld
Navigatie
Het besturingselement biedt horizontale en verticale schuifbalken, scrollen met het muiswiel, muisselectie, pijltjestoetsen en navigatie via Home, Page Up, Page Down en Tab
GoToCell selecteert een rij en kolom, SelectRange selecteert een rechthoek, NextWorksheet en PreviousWorksheet wisselen van werkblad, en SelectedRange stelt de genormaliseerde A1-verwijzing bloot
Bewerken en berekening
Zet Editable op True om bewerken via F2, dubbelklik, afdrukbare toetsen, Delete en de formulebalk toe te staan; vergrendelde cellen op een beveiligd werkblad blijven alleen-lezen
BeginEdit, CommitEdit en CancelEdit sturen de in-place editor, terwijl EditSelectedCell en FormulaBarText een externe formulebalk ondersteunen
Vastgelegde bewerkingen herkennen formules, booleans, integers, drijvende-kommawaarden, tekst en lege invoer, herberekenen daarna afhankelijke formules en maken de caches voor voorwaardelijke opmaak en paginering ongeldig
Undo en Redo gebruiken een begrensde circulaire geschiedenis met O(1)-gedrag; stel UndoLimit in om de capaciteit te bepalen, of op nul om de geschiedenis uit te schakelen
Delete of ClearSelectedRange wist de selectie als één transactie; Ctrl+C en CopySelectedRange kopiëren Unicodetekst met tabscheidingstekens, terwijl Ctrl+V, PasteSelectedRange en PasteText een rechthoekig tekstblok plakken op de linkerbovenhoek van de selectie, met één undo-entry
Beschermings- en structurele preflight weigert een volledig geblokkeerd bereik vóór mutatie; undo en redo behouden native rich text, formulecaches, stijlen en afwezige cellen in beide modellen, met dezelfde beschermingscontrole bij elke geschiedenispoging
Bestaande array-formules, datatabelgebieden en multicel-plakken die een samenvoeging raken worden geweigerd; bewerkingen van een enkele samengevoegde anker cel en het wissen van hele samenvoegingen behouden de samenvoegingsgeometrie, terwijl gedeeltelijk wissen van samengevoegde bereiken wordt geweigerd
De gedeelde engine TXLSWorkbookEditHistory kan ook zonder een control worden geïnstantieerd; zie headless bewerkingstransacties voor de regels voor coördinaten, levensduur, berekening en operatielimieten
Formuleverwijzingen selecteren
Roep BeginReferencePick aan terwijl een formule-editor van de host een werkbladverwijzing verzamelt; elke selectiewijziging vuurt OnReferencePick af met het huidige A1-bereik, tot EndReferencePick wordt aangeroepen
Weergave
De viewer maakt gebruik van de kolombreedtes, rijhoogtes en opgemaakte weergavetekst van elk werkblad, rendert klassieke effen opvullingen en lettertypestyling, en biedt configureerbare kopteksten, rasterlijnen en selectiekleuren
Voor XLSX-werkbladen rendert de viewer ook voorwaardelijke vullingen, fontkleuren en -nadruk, getalnotaties, kleurschalen, directionele positieve en negatieve databalken, verlopen, randen, assen, verborgen waarden en alle ingebouwde icon-set-families
De viewer cachet één voorbereide evaluator voor voorwaardelijke opmaak per actief werkblad, zodat scrollen en hertekenen van selecties de werkmap niet opnieuw scannen; roep RefreshConditionalFormats aan na het wijzigen van waarden, formules, bereiken of voorwaardelijke regels in een gekoppelde werkmap
XLSX-rendering controleert sparse cellen en interval-stijloverlays zonder lege coördinaten te indexeren, waardoor scrollen geen zichtbare lege cellen materialiseert of werkbladopslag uitbreidt
Afdrukvoorbeeld
Zet PrintPreview op True om het actieve werkblad te tonen via het gedeelde TXLSPaginationModel dat ook door de PDF-pagineometrie en -telling wordt gebruikt
PreviewPage is op 1 gebaseerd en wordt begrensd op PreviewPageCount; de opdrachten pijl, Page Up, Page Down, Home, End, muiswiel en verticaal scrollen navigeren door logische pagina’s zolang het voorbeeld actief is
PaginationModel stelt het gecachte model bloot, SavePreviewPageAsMetafile schrijft de geselecteerde logische pagina als EMF, en RefreshPagination bouwt de cache opnieuw op na wijzigingen aan waarden, afmetingen, afdrukinstellingen, einden, titels of tekeningen
Gebeurtenissen
OnSelectionChangerapporteert de nieuw geselecteerde rij en kolomOnWorksheetChangetreedt op nadat het actieve werkblad is gewijzigdOnBeforeEditkan de voorgestelde invoer wijzigen of bewerken weigerenOnAfterEditrapporteert een vastgelegde celbewerkingOnReferencePickpubliceert het geselecteerde A1-bereik in referentiekeuzemodus
Delphi-voorbeeld
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;
Zie Demo\Delphi\WorkbookViewer voor een volledige tijdens runtime gemaakte viewer met functies voor het openen van bestanden en werkbladbesturingselementen