Documentação HotXLS

Componente TXLSWorkbookViewer

TXLSWorkbookViewer é um controle VCL que exibe planilhas de qualquer mecanismo de pasta de trabalho sem Microsoft Excel ou automação COM

Origens da pasta de trabalho

Navegação

O controle fornece barras de rolagem horizontal e vertical, rolagem com a roda do mouse, arrastar com o mouse, extensão de intervalo com Shift, teclas de seta, e navegação com Home, Page Up, Page Down e Tab

GoToCell , SelectRange , NextWorksheet , PreviousWorksheet e SelectedRange expõem o estado atual da exibição

Edição e cálculo

Defina Editable como True para permitir edição via F2, duplo clique, teclas imprimíveis, Delete e barra de fórmulas; células bloqueadas em uma planilha protegida permanecem somente leitura

BeginEdit, CommitEdite CancelEdit controlam o editor in-place, enquanto EditSelectedCell e FormulaBarText dão suporte a uma barra de fórmulas externa

As edições confirmadas reconhecem fórmulas, booleanos, inteiros, valores de ponto flutuante, texto e entrada em branco, e depois recalculam as fórmulas dependentes e invalidam os caches de formato condicional e de paginação

Undo e Redo usam um histórico circular limitado em O(1); defina UndoLimit para controlar a capacidade ou como zero para desativar o histórico

Excluir ou ClearSelectedRange limpa a seleção como uma única transação; Ctrl+C e CopySelectedRange copiam texto Unicode separado por tabulações, enquanto Ctrl+V, PasteSelectedRangee PasteText colam um bloco retangular de texto no canto superior esquerdo da seleção com uma única entrada de undo

O preflight de proteção e de estrutura rejeita um intervalo bloqueado inteiro antes da mutação; undo e redo preservam rich text nativo, caches de fórmulas, estilos e células ausentes em ambos os modelos, com a mesma verificação de proteção em cada tentativa de histórico

Fórmulas de matriz existentes, regiões de tabelas de dados e colagens de múltiplas células que cruzam uma mesclagem são rejeitadas; edições com âncora em mesclagem única e limpezas que abrangem a mesclagem inteira preservam sua geometria, enquanto limpezas parciais de intervalo mesclado são rejeitadas

O motor TXLSWorkbookEditHistory compartilhado também pode ser instanciado sem um controle; veja transações de edição headless para as regras de coordenadas, tempo de vida, cálculo e limites de operação

Seleção de referência de fórmula

Chame BeginReferencePick enquanto um editor de fórmulas host estiver coletando uma referência de planilha; cada mudança de seleção dispara OnReferencePick com o intervalo A1 atual até que EndReferencePick seja chamado

Renderização

O visualizador usa larguras de coluna, alturas de linha e texto de exibição formatado de cada planilha, renderiza preenchimentos sólidos clássicos e estilos de fonte, e fornece cabeçalhos, linhas de grade e cores de seleção configuráveis

Para planilhas XLSX, o visualizador também renderiza preenchimentos condicionais, cores e ênfase de fonte, formatos numéricos, escalas de cores, barras de dados direcionais positivas e negativas, gradientes, bordas, eixos, valores ocultos e todas as famílias internas de conjuntos de ícones

O visualizador mantém em cache um avaliador de formato condicional preparado para a planilha ativa, de modo que a rolagem e o redesenho de seleção não revarram a pasta de trabalho; chame RefreshConditionalFormats após alterar valores, fórmulas, intervalos ou regras condicionais em uma pasta de trabalho anexada

A renderização XLSX verifica células esparsas e overlays de estilo de intervalo sem indexar coordenadas vazias, de modo que a rolagem não materializa células em branco visíveis nem expande o armazenamento da planilha

Visualização de impressão

Defina PrintPreview como True para exibir a planilha ativa por meio do TXLSPaginationModel compartilhado usado pela geometria e contagem de páginas do PDF

PreviewPage tem base 1 e é limitado a PreviewPageCount; os comandos de seta, Page Up, Page Down, Home, End, roda do mouse e rolagem vertical navegam pelas páginas lógicas enquanto o preview está ativo

PaginationModel expõe o modelo em cache, SavePreviewPageAsMetafile grava a página lógica selecionada como EMF, e RefreshPagination reconstrói o cache após mudanças em valores, dimensões, configurações de impressão, quebras, títulos ou desenhos

Eventos

Exemplo 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 um visualizador completo criado em tempo de execução, com abertura de arquivos e controles de planilha