Documentação HotXLS

Componente TXLSWorkbookViewer

TXLSWorkbookViewer é um controle VCL que exibe folhas de cálculo de qualquer mecanismo de livro sem Microsoft Excel ou automação COM

Origens do livro

Navegação

O controlo fornece barras de deslocamento horizontal e vertical, deslocamento com a roda do rato, arrastamento com o rato, extensão de intervalo com Shift, teclas de setas, Home, Page Up, Page Down e navegação com Tab

GoToCell seleciona uma linha e coluna, SelectRange seleciona um retângulo, NextWorksheet e PreviousWorksheet trocam de folha de cálculo, e SelectedRange expõe a referência A1 normalizada

Edição e cálculo

Defina Editable como True para permitir edições com F2, duplo clique, teclas imprimíveis, Delete e barra de fórmulas; as células bloqueadas numa folha de cálculo protegida mantêm-se só de leitura

BeginEdit, CommitEdit e CancelEdit controlam o editor no local, enquanto EditSelectedCell e FormulaBarText suportam uma barra de fórmulas externa

As edições confirmadas reconhecem fórmulas, booleans, inteiros, valores de vírgula flutuante, texto e entrada vazia, e depois recalculam as fórmulas dependentes e invalidam as caches de formatação condicional e de paginação

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

Eliminar 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, PasteSelectedRange e PasteText colam um bloco de texto retangular no canto superior esquerdo da seleção, com uma única entrada de desfazer

A verificação prévia de proteção e de estrutura rejeita um intervalo bloqueado inteiro antes da mutação; o desfazer e o refazer 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 tabela de dados e colagens de múltiplas células que cruzem uma fusão são rejeitadas; edições com âncora numa fusão única e limpezas de fusões inteiras preservam a geometria da fusão, enquanto limpezas parciais de um intervalo fundido são rejeitadas

O motor partilhado TXLSWorkbookEditHistory também pode ser instanciado sem um controlo; consulte as transações de edição sem interface para conhecer as regras de coordenadas, tempo de vida, cálculo e limites de operações

Seleção de referências para fórmulas

Chame BeginReferencePick enquanto um editor de fórmulas anfitrião está a recolher uma referência de folha de cálculo; cada alteração de seleção gera 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 visualização formatado de cada folha de cálculo, renderiza preenchimentos sólidos clássicos e estilos de fonte, e fornece cabeçalhos, linhas de grelha e cores de seleção configuráveis

Em folhas de cálculo XLSX, o visualizador também renderiza preenchimentos condicionais, cores e ênfase de tipos de letra, formatos de número, escalas de cores, barras de dados positivas e negativas direcionais, gradientes, contornos, eixos, valores ocultos e todas as famílias de conjuntos de ícones incorporadas

O visualizador guarda em cache um avaliador de formatação condicional preparado para a folha de cálculo ativa, de modo a que a rolagem e as repinturas de seleção não voltem a analisar o livro; chame RefreshConditionalFormats após alterar valores, fórmulas, intervalos ou regras condicionais num livro anexado

A renderização XLSX verifica células esparsas e sobreposições de estilos por intervalo sem indexar coordenadas vazias, pelo que a rolagem não materializa células em branco visíveis nem expande o armazenamento da folha de cálculo

Pré-visualização de impressão

Defina PrintPreview como True para apresentar a folha de cálculo ativa através do TXLSPaginationModel partilhado usado pela geometria e contagem de páginas do PDF

PreviewPage é de base 1 e é limitado a PreviewPageCount; os comandos de setas, Page Up, Page Down, Home, End, roda do rato e deslocamento vertical navegam pelas páginas lógicas enquanto a pré-visualização estiver ativa

PaginationModel expõe o modelo em cache, SavePreviewPageAsMetafile escreve a página lógica selecionada como EMF, e RefreshPagination reconstrói a cache após alterações a valores, dimensões, definiçõ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 ficheiros e controles de folha de cálculo