Documentação HotXLS

Fluxos de trabalho avançados de pastas de trabalho

Este guia reúne as APIs de nível superior mais úteis quando um fluxo de trabalho vai além da leitura e gravação básicas de células

Saída PDF pronta para impressão

As exportações PDF de pastas de trabalho, planilhas e intervalos XLS clássicos e XLSX modernos renderizam valores formatados, preenchimentos de células, cor e ênfase de fonte, alinhamento, bordas, linhas de grade opcionais, larguras de coluna, alturas de linha, quebras de página manuais, títulos de impressão repetidos e cabeçalhos e rodapés de três partes

Sheet.PageSetup.PrintArea := 'A1:H80';
Sheet.PageSetup.PrintTitleRows := '$1:$3';
Sheet.PageSetup.RightHeader := 'Page &P of &N';
Sheet.HPageBreaks.Add(45);
Workbook.SaveAsPDF('report.pdf');

As pastas de trabalho modernas expõem os mesmos pontos de entrada diretos por meio de TXLSXWorkbook, TXLSXWorksheete TXLSXRange

ModernSheet.PrintArea := '$A$1:$H$80';
ModernSheet.PrintTitleRows := '$1:$3';
ModernSheet.AddRowBreak(45);
ModernWorkbook.SaveAsPDF('modern-report.pdf');

O texto fora de WinAnsi é gravado com uma fonte CID TrueType incorporada e um mapa ToUnicode para que os leitores possam renderizar e extrair texto Unicode

Defina TXLSPDFExport.UnicodeFontFile quando uma pasta de trabalho precisar de um script específico ou fonte corporativa; caso contrário, o exportador selecionará uma fonte instalada adequada quando disponível

Use TXLSPaginationModel quando visualização, PDF e saída personalizada precisam compartilhar a mesma geometria de papel, margens, escala de ajuste, quebras manuais, títulos repetidos, ordem das páginas, cabeçalhos, rodapés e âncoras de desenho

Pages := Exporter.CreatePaginationModel(Workbook);
try
  Pages.SavePageAsMetafile(0, 'FirstPage.emf');
finally
  Pages.Free;
end;

Progresso, cancelamento e diagnósticos

Use OnProgressEx para callbacks de início, trabalho e fim e defina seu argumento de interrupção para cancelar uma operação

Inspecione Diagnostics ou LastDiagnostic após falhas ao salvar, abrir ou recalcular, em vez de depender apenas de um valor numérico de retorno

Partes de pacote OOXML não compatíveis

TXLSXWorkbook.PreserveUnsupportedParts assume true por padrão e mantém partes personalizadas acessíveis por relações desconhecidas de raiz, pasta de trabalho, planilha ou desenho

UnsupportedPartCount e UnsupportedPartBytes informam o conteúdo mantido, enquanto ClearUnsupportedParts o remove intencionalmente antes de salvar

Troca avançada com a área de transferência

Chame CopyToClipboard no nível do intervalo para publicar texto tabular Unicode e CF_HTML, incluindo formatação exibida, fórmulas, células mescladas, links e delimitadores incorporados entre aspas com segurança

Edição do código-fonte VBA

Após carregar um projeto VBA, atualize SourceCode de um módulo existente e salve a pasta de trabalho ou o armazenamento independente

O gravador recompõe apenas o fluxo de origem editado, preservando os prefixos do fluxo e o conteúdo não alterado do projeto

Controles de formulário clássicos

MacroName := Workbook.Names.Add('RunReport', '=0', False);
MacroName.IsMacro := True;
Button := Sheet.AddButton('Run report', 1, 2, 2, 5);
Button.MacroName := 'RunReport';
CheckBox := Sheet.AddCheckBox('Approved', 2, 2, 3, 5);
CheckBox.State := xcsMixed;
CheckBox.LinkedCell := 'Controls!$F$2';
RadioButton := Sheet.AddRadioButton('Primary', 4, 2, 5, 5);
RadioButton.FirstInGroup := True;
ComboBox := Sheet.AddComboBox(5, 2, 6, 5);
ComboBox.SourceRange := 'Controls!$A$1:$A$8';
ListBox := Sheet.AddListBox(8, 2, 12, 5);
ListBox.SourceRange := 'Controls!$A$1:$A$8';

Os wrappers tipados retornados expõem rótulos, tipos de controle, âncoras, enumeração e exclusão

Patches de formatação seletivos

Target.ApplyFormatPatch(Source, [xfpFont, xfpFill, xfpNumberFormat]);

Um intervalo de origem menor é repetido sobre um destino maior, e a formatação não selecionada e todos os valores de destino permanecem inalterados

Exportação de conjunto de dados mestre-detalhe

Habilite TDataToXLS.ReadDetailTables para exportar conjuntos de dados de detalhe vinculados abaixo de cada registro mestre e habilite IndentDetailTables para adicionar uma coluna de recuo por nível de relação

WordArt

Shape := Sheet.AddWordArt('HotXLS', 'textArchUp', 2, 2, 6, 8);
Shape.TextColor := $FF00A060;
Shape.OutlineColor := $FF17365D;

A âncora DrawingML completa sobrevive a ciclos posteriores de abertura e salvamento pelo caminho de preservação de desenhos brutos

Consulte Demo\Delphi\FeatureShowcase para um exemplo executável compacto que combina impressão PDF, controles de formulário, patches de formatação e WordArt