Documentazione HotXLS

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

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

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