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