Componente TXLSWorkbookViewer
TXLSWorkbookViewer es un control VCL que muestra hojas de cualquiera de los dos motores de libros sin Microsoft Excel ni automatización COM
Orígenes de libros
- Asigna
Workbookpara mostrar unTXLSWorkbookexistente - Asigna
XlsxWorkbookpara mostrar unTXLSXWorkbookexistente - Llama a
LoadFromFilepara que el visor posea y cargue un libro XLS, XLSX, XLSM, XLTX, XLTM u ODS - Llama a
ClearWorkbookantes de liberar un libro de propiedad externa que siga adjunto
Navegación
El control proporciona barras de desplazamiento horizontal y vertical, desplazamiento con la rueda del ratón, arrastre con el ratón, extensión de rango con Mayús, teclas de flecha, Inicio, Re Pág, Av Pág y navegación con Tab
GoToCell selecciona una fila y 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, Supr y la barra de fórmulas; las celdas bloqueadas de una hoja protegida permanecen en solo lectura
BeginEdit, CommitEdit y CancelEdit controlan el editor en contexto, 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 vacía, y después recalculan las fórmulas dependientes e invalidan las cachés de formato condicional y paginación
Undo y Redo usan un historial circular acotado O(1); establezca UndoLimit para controlar la capacidad, o a cero para deshabilitar el historial
Suprimir o ClearSelectedRange borra la selección como una única transacción; Ctrl+C y CopySelectedRange copian texto Unicode separado por tabuladores, mientras que Ctrl+V, PasteSelectedRange y PasteText pegan un bloque de texto rectangular en la celda superior izquierda de la selección con una sola entrada de deshacer
La comprobación previa de protección y de estructura rechaza un rango bloqueado completo antes de la mutación; deshacer y rehacer conservan 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 matriciales existentes, las regiones de tablas de datos y los pegados de varias celdas que intersecan una combinación se rechazan; las ediciones de un único anclaje combinado y los borrados de combinaciones completas conservan la geometría de la combinación, mientras que los borrados parciales de rangos combinados se rechazan
El motor compartido TXLSWorkbookEditHistory también puede instanciarse sin un control; consulte transacciones de edición headless para conocer las reglas de coordenadas, ciclo de vida, cálculo y límites de operaciones
Selección de referencias de fórmulas
Llame a BeginReferencePick mientras un editor de fórmulas del host recoge una referencia de hoja de cálculo; cada cambio de selección lanza OnReferencePick con el rango A1 actual hasta que se llama a EndReferencePick
Representación
El visor usa los anchos de columna, las alturas de fila y el texto mostrado con formato de cada hoja, 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 de número, 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 cachea un evaluador de formato condicional preparado para la hoja activa, de modo que el desplazamiento y los repintados de selección no vuelvan a examinar el libro; llame a RefreshConditionalFormats después de cambiar valores, fórmulas, rangos o reglas condicionales en un libro adjunto
La representación XLSX comprueba las celdas dispersas y las superposiciones de estilo por intervalos 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 se basa en uno y se acota a PreviewPageCount; los comandos de flecha, Re Pág, Av Pág, Inicio, Fin, rueda del ratón y desplazamiento vertical navegan por las páginas lógicas mientras la vista previa está activa
PaginationModel expone el modelo cacheado, SavePreviewPageAsMetafile escribe la página lógica seleccionada como EMF, y RefreshPagination reconstruye la caché después de cambios en valores, dimensiones, ajustes de impresión, saltos, títulos o dibujos
Eventos
OnSelectionChangeinforma de la fila y columna recién seleccionadasOnWorksheetChangese activa después de cambiar la hoja activaOnBeforeEditpuede alterar la entrada propuesta o rechazar la ediciónOnAfterEditinforma de una edición de celda confirmadaOnReferencePickpublica el rango A1 seleccionado en modo de recogida 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;
Consulta Demo\Delphi\WorkbookViewer para ver un visor completo creado en tiempo de ejecución, con apertura de archivos y controles de hoja