Componente TXLSWorkbookViewer
TXLSWorkbookViewer è un controllo VCL che visualizza fogli di lavoro da entrambi i motori di cartelle di lavoro senza Microsoft Excel o automazione COM
Origini della cartella di lavoro
- Assegna
Workbookper visualizzare un esistenteTXLSWorkbook - Assegna
XlsxWorkbookper visualizzare un esistenteTXLSXWorkbook - Chiama
LoadFromFileper consentire al visualizzatore di possedere e caricare una cartella di lavoro XLS, XLSX, XLSM, XLTX, XLTM o ODS - Chiama
ClearWorkbookprima di liberare una cartella di lavoro di proprietà esterna ancora collegata
Navigazione
Il controllo fornisce barre di scorrimento orizzontali e verticali, scorrimento con la rotellina del mouse, trascinamento del mouse, estensione dell'intervallo con Shift, tasti freccia, navigazione con Home, Pagina su, Pagina giù e Tab
GoToCell seleziona una riga e una colonna, SelectRange seleziona un rettangolo, NextWorksheet e PreviousWorksheet cambiano foglio, e SelectedRange espone il riferimento A1 normalizzato
Modifica e calcolo
Impostare Editable su True per consentire le modifiche con F2, doppio clic, tasti stampabili, Delete e dalla barra delle formule; le celle bloccate su un foglio di lavoro protetto restano in sola lettura
BeginEdit, CommitEdit e CancelEdit controllano l'editor in-place, mentre EditSelectedCell e FormulaBarText supportano una barra delle formule esterna
Le modifiche confermate riconoscono formule, booleani, interi, valori in virgola mobile, testo e input vuoto, poi ricalcolano le formule dipendenti e invalidano le cache della formattazione condizionale e della paginazione
Undo e Redo usano uno storico circolare limitato a O(1); impostare UndoLimit per controllare la capacità, oppure a zero per disabilitare lo storico
Delete o ClearSelectedRange cancellano la selezione come un'unica transazione; Ctrl+C e CopySelectedRange copiano testo Unicode separato da tabulazioni, mentre Ctrl+V, PasteSelectedRange e PasteText incollano un blocco di testo rettangolare nell'angolo in alto a sinistra della selezione con una sola voce di undo
Il preflight di protezione e struttura rifiuta un intero range bloccato prima della mutazione; undo e redo preservano rich text nativo, cache delle formule, stili e celle assenti in entrambi i modelli, con lo stesso controllo di protezione a ogni tentativo dello storico
Formule array esistenti, aree di data table e incollamenti multicella che intersecano un'unione vengono rifiutati; le modifiche a un'unica ancora unita e le cancellazioni dell'unione intera preservano la geometria dell'unione, mentre le cancellazioni parziali di un range unito vengono rifiutate
Il motore condiviso TXLSWorkbookEditHistory può anche essere istanziato senza un controllo; vedi transazioni di editing headless per le regole su coordinate, ciclo di vita, calcolo e limiti operativi
Selezione dei riferimenti nelle formule
Chiamare BeginReferencePick mentre un editor di formule dell'host sta raccogliendo un riferimento al foglio di lavoro; ogni cambio di selezione solleva OnReferencePick con l'intervallo A1 corrente finché non viene chiamato EndReferencePick
Rendering
Il visualizzatore utilizza le larghezze delle colonne, le altezze delle righe e il testo visualizzato formattato di ciascun foglio di lavoro, riproduce i classici riempimenti solidi e lo stile del carattere e fornisce intestazioni, griglie e colori di selezione configurabili
Per i fogli di lavoro XLSX, il visualizzatore disegna anche riempimenti condizionali, colori ed enfasi del font, formati numerici, scale di colore, barre dati direzionali positive e negative, gradienti, bordi, assi, valori nascosti e tutte le famiglie di set di icone incorporate
Il visualizzatore mette in cache un valutatore di formattazione condizionale preparato per il foglio di lavoro attivo, così lo scorrimento e i ridisegni della selezione non riscansionano la cartella di lavoro; chiamare RefreshConditionalFormats dopo aver modificato valori, formule, intervalli o regole condizionali in una cartella di lavoro collegata
Il rendering XLSX ispeziona le celle sparse e gli overlay di stile per intervallo senza indicizzare coordinate vuote, così lo scorrimento non materializza celle vuote visibili né espande lo storage del foglio di lavoro
Anteprima di stampa
Impostare PrintPreview su True per visualizzare il foglio di lavoro attivo tramite il TXLSPaginationModel condiviso usato dalla geometria e dal conteggio delle pagine PDF
PreviewPage è a base uno e viene limitato a PreviewPageCount; i comandi freccia, Pagina su, Pagina giù, Home, Fine, rotellina del mouse e scorrimento verticale navigano le pagine logiche mentre l'anteprima è attiva
PaginationModel espone il modello in cache, SavePreviewPageAsMetafile scrive la pagina logica selezionata come EMF, e RefreshPagination ricostruisce la cache dopo modifiche a valori, dimensioni, impostazioni di stampa, interruzioni, titoli o disegni
Eventi
OnSelectionChangesegnala la riga e la colonna appena selezionateOnWorksheetChangesi attiva dopo il cambio del foglio di lavoro attivoOnBeforeEditpuò alterare l'input proposto o rifiutare la modificaOnAfterEditsegnala una modifica di cella confermataOnReferencePickpubblica l'intervallo A1 selezionato in modalità reference-pick
Esempio Delphi
Viewer := TXLSWorkbookViewer.Create(Self);
Viewer.Parent := Self;
Viewer.Align := alClient;
Viewer.XlsxWorkbook := Workbook;
Viewer.GoToCell(12, 4);
Caption := Viewer.WorksheetName + ': ' + Viewer.SelectedCellText;
Vedere Demo\Delphi\WorkbookViewer per un visualizzatore completo creato a runtime con apertura di file e controlli del foglio di lavoro