Componente TXLSWorkbookViewer
TXLSWorkbookViewer es un control VCL que muestra hojas de cualquiera de los dos motores de libros de trabajo sin Microsoft Excel ni automatización COM
Orígenes de libros de trabajo
- Asigne
Workbookpara mostrar unTXLSWorkbookexistente - Asigne
XlsxWorkbookpara mostrar unTXLSXWorkbookexistente - Llame a
LoadFromFilepara que el visor posea y cargue un libro de trabajo XLS, XLSX, XLSM, XLTX, XLTM u ODS - Llame a
ClearWorkbookantes de liberar un libro de trabajo de propiedad externa que siga adjunto
Navegación
El control proporciona barras de desplazamiento horizontal y vertical, desplazamiento con la rueda del mouse, arrastre con el mouse, extensión de rango con Shift, teclas de flecha, Inicio, Página arriba, Página abajo y navegación con Tab
GoToCell selecciona una fila y una columna, SelectRange selecciona un rectángulo, NextWorksheet y PreviousWorksheet cambian de hoja, y SelectedRange expone la referencia A1 normalizada
Edición y cálculo
Establezca Editable en True para permitir ediciones con F2, doble clic, teclas imprimibles, Delete y la barra de fórmulas; las celdas bloqueadas de una hoja protegida permanecen de solo lectura
BeginEdit, CommitEdit y CancelEdit controlan el editor en el lugar, mientras que EditSelectedCell y FormulaBarText dan soporte a una barra de fórmulas externa
Las ediciones confirmadas reconocen fórmulas, booleanos, enteros, valores de punto flotante, texto y entrada en blanco, y luego recalculan las fórmulas dependientes e invalidan las cachés de formato condicional y de paginación
Undo y Redo usan un historial circular acotado O(1); asigne UndoLimit para controlar la capacidad, o cero para deshabilitar el historial
Delete o ClearSelectedRange limpian la selección como una sola transacción; Ctrl+C y CopySelectedRange copian texto Unicode separado por tabuladores, mientras que Ctrl+V, PasteSelectedRange y PasteText pegan un bloque rectangular de texto en la esquina superior izquierda de la selección con una sola entrada de undo
El preflight de protección y estructura rechaza un rango bloqueado completo antes de mutar; undo y redo preservan el texto enriquecido nativo, las cachés de fórmulas, los estilos y las celdas ausentes en ambos modelos, con la misma comprobación de protección en cada intento del historial
Las fórmulas de matriz existentes, las regiones de tablas de datos y los pegados multicelda que intersectan una combinación se rechazan; las ediciones simples del ancla combinada y las limpiezas de la combinación completa preservan la geometría de la combinación, mientras que las limpiezas parciales de un rango combinado se rechazan
El motor compartido TXLSWorkbookEditHistory también se puede instanciar sin un control; consulte las transacciones de edición headless para las reglas de coordenadas, vida útil, cálculo y límites de operación
Selección de referencias de fórmulas
Llame a BeginReferencePick mientras un editor de fórmulas del host está recolectando una referencia de hoja de cálculo; cada cambio de selección dispara OnReferencePick con el rango A1 actual hasta que se llame a EndReferencePick
Representación
El visor usa los anchos de columna, las alturas de fila y el texto mostrado con formato de cada hoja de cálculo, representa rellenos sólidos clásicos y estilos de fuente, y proporciona encabezados, líneas de cuadrícula y colores de selección configurables
Para hojas de cálculo XLSX, el visor también representa rellenos condicionales, colores y énfasis de fuente, formatos numéricos, escalas de color, barras de datos direccionales positivas y negativas, degradados, bordes, ejes, valores ocultos y todas las familias integradas de conjuntos de iconos
El visor guarda en caché un evaluador de formato condicional preparado para la hoja activa, de modo que el desplazamiento y el repintado por selección no reescanean el libro de trabajo; llame a RefreshConditionalFormats después de cambiar valores, fórmulas, rangos o reglas condicionales en un libro de trabajo adjunto
El renderizado XLSX revisa las celdas dispersas y las superposiciones de estilo por intervalo sin indexar coordenadas vacías, de modo que el desplazamiento no materializa celdas en blanco visibles ni expande el almacenamiento de la hoja de cálculo
Vista previa de impresión
Establezca PrintPreview en True para mostrar la hoja de cálculo activa a través del TXLSPaginationModel compartido que usan la geometría y el conteo de páginas PDF
PreviewPage es de base 1 y se acota a PreviewPageCount; los comandos de flecha, Página arriba, Página abajo, Inicio, Fin, rueda del mouse y desplazamiento vertical navegan por las páginas lógicas mientras la vista previa está activa
PaginationModel expone el modelo en caché, SavePreviewPageAsMetafile escribe la página lógica seleccionada como EMF, y RefreshPagination reconstruye la caché después de cambios en valores, dimensiones, configuración de impresión, saltos, títulos o dibujos
Eventos
OnSelectionChangeinforma la fila y la columna recién seleccionadasOnWorksheetChangese dispara después de que cambia la hoja de cálculo activaOnBeforeEditpuede alterar la entrada propuesta o rechazar la ediciónOnAfterEditinforma una edición de celda confirmadaOnReferencePickpublica el rango A1 seleccionado en el modo de captura de referencias
Ejemplo de Delphi
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;
Consulte Demo\Delphi\WorkbookViewer para ver un visor completo creado en tiempo de ejecución, con apertura de archivos y controles de hoja de cálculo