HotXLS-dokumentation

TXLSWorkbookViewer Component

TXLSWorkbookViewer är en VCL-komponent som visar kalkylblad från båda arbetsboksmotorerna utan Microsoft Excel eller COM-automation

Arbetsbokskällor

Navigering

Komponenten tillhandahåller horisontella och vertikala rullningslister, rullning med mushjul, musdragning, områdesutökning med Shift, piltangenter samt navigering med Home, Page Up, Page Down och Tab

GoToCell markerar en rad och kolumn, SelectRange markerar en rektangel, NextWorksheet och PreviousWorksheet byter kalkylblad, och SelectedRange exponerar den normaliserade A1-referensen

Redigering och beräkning

Sätt Editable till True för att tillåta redigering via F2, dubbelklick, utskrivbara tangenter, Delete och formelfältet; låsta celler på ett skyddat kalkylblad förblir skrivskyddade

BeginEdit, CommitEdit och CancelEdit styr den inbäddade redigeraren, medan EditSelectedCell och FormulaBarText stöder ett externt formelfält

Genomförda redigeringar känner igen formler, booleska värden, heltal, flyttal, text och tom inmatning, räknar därefter om beroende formler och ogiltigförklarar cachena för villkorsstyrd formatering och sidbrytning

Undo och Redo använder en O(1)-avgränsad cirkulär historik; sätt UndoLimit för att styra kapaciteten, eller till noll för att stänga av historiken

Delete eller ClearSelectedRange rensar markeringen som en transaktion; Ctrl+C och CopySelectedRange kopierar Unicode-text tabbseparerad, medan Ctrl+V, PasteSelectedRange och PasteText klistrar in ett rektangulärt textblock i markeringens övre vänstra hörn med en undo-post

Skydds- och strukturell preflight avvisar ett helt blockerat område före mutation; undo och redo bevarar inbyggd rik text, formelcache:er, stilar och frånvarande celler i båda modellerna, med samma skyddskontroll vid varje historikförsök

Befintliga matrisformler, regioner för datatabeller och flercelliga inklistringar som snittar en sammanslagning avvisas; enstaka redigeringar av sammanslagna ankare och rensning av hela sammanslagningar bevarar sammanslagsgeometrin, medan partiell rensning av sammanslagna områden avvisas

Den delade motorn TXLSWorkbookEditHistory kan också instansieras utan en kontroll; se headless-redigeringstransaktioner för regler för koordinater, livstid, beräkning och operationgränser

Val av formelreferenser

Anropa BeginReferencePick medan en värdformeleditor samlar in en kalkylbladsreferens; varje ändring av markeringen utlöser OnReferencePick med aktuellt A1-område tills EndReferencePick anropas

Rendering

Visningsprogrammet använder varje kalkylblads kolumnbredder, radhöjder och formaterade visningstexter, renderar klassiska heldragna fyllningar och typsnittsstyling och tillhandahåller konfigurerbara rubriker, rutnät och markeringsfärger

För XLSX-kalkylblad renderar visningsprogrammet även villkorsstyrda fyllningar, typsnittsfärger och betoningar, talformat, färgskalor, riktade positiva och negativa databara, toningar, ramar, axlar, dolda värden och alla inbyggda ikonuppsättningsfamiljer

Visningsprogrammet cachar en förberedd utvärderare för villkorsstyrd formatering för det aktiva kalkylbladet, så att rullning och omritning vid markering inte söker av arbetsboken igen; anropa RefreshConditionalFormats efter ändringar av värden, formler, områden eller villkorsregler i en kopplad arbetsbok

XLSX-renderingen kontrollerar glesa celler och intervallvisa stilöverlägg utan att indexera tomma koordinater, så att rullning inte materialiserar synliga tomma celler eller utökar kalkylbladets lagring

Förhandsgranskning av utskrift

Sätt PrintPreview till True för att visa det aktiva kalkylbladet via den gemensamma TXLSPaginationModel som PDF-sidgeometrin och sidräkningen använder

PreviewPage är ettbaserad och begränsas till PreviewPageCount; kommandona med piltangenter, Page Up, Page Down, Home, End, mushjul och vertikal rullning navigerar logiska sidor medan förhandsgranskningen är aktiv

PaginationModel exponerar den cachade modellen, SavePreviewPageAsMetafile skriver den valda logiska sidan som EMF, och RefreshPagination bygger upp cachet igen efter ändringar av värden, dimensioner, utskriftsinställningar, brytningar, titlar eller ritobjekt

Händelser

Delphi-exempel

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 för en komplett, vid körning skapad visare med filöppning och kalkylbladskontroller