Flux de travail avancés de classeur
Ce guide regroupe les API de niveau supérieur les plus utiles lorsqu'un flux de travail de classeur dépasse la lecture et l'écriture de base des cellules
Sortie PDF prête à l'impression
Les exportations PDF de classeurs, feuilles de calcul et plages XLS classiques et XLSX modernes affichent les valeurs formatées, les remplissages de cellules, la couleur et l'accentuation de la police, l'alignement, les bordures, les quadrillages facultatifs, les largeurs de colonnes, les hauteurs de lignes, les sauts de page manuels, les titres d'impression répétés, ainsi que les en-têtes et pieds de page en trois parties
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');Modern workbooks expose the same direct entry points through TXLSXWorkbook, TXLSXWorksheet, and TXLSXRange
ModernSheet.PrintArea := '$A$1:$H$80';
ModernSheet.PrintTitleRows := '$1:$3';
ModernSheet.AddRowBreak(45);
ModernWorkbook.SaveAsPDF('modern-report.pdf');Le texte en dehors de WinAnsi est écrit avec une police TrueType CID intégrée et une carte ToUnicode afin que les lecteurs puissent afficher et extraire le texte Unicode
Set TXLSPDFExport.UnicodeFontFile quand un classeur a besoin d'une écriture ou d'une typographie d'entreprise particulière, sinon l'exporteur sélectionne une police installée appropriée quand elle est disponible
Use TXLSPaginationModel lorsque l'aperçu, le PDF et la sortie personnalisée doivent partager la même géométrie de papier, les mêmes marges, échelle d'ajustement, sauts manuels, titres répétés, ordre des pages, en-têtes, pieds de page et ancres de dessin
Pages := Exporter.CreatePaginationModel(Workbook);
try
Pages.SavePageAsMetafile(0, 'FirstPage.emf');
finally
Pages.Free;
end;Progression, annulation et diagnostics
Use OnProgressEx pour les callbacks begin, work et end, et définissez son argument abort pour annuler une opération
Inspect Diagnostics or LastDiagnostic après des échecs d'enregistrement, d'ouverture ou de recalcul, au lieu de se fier uniquement à une valeur de retour numérique
Parties de package OOXML non prises en charge
TXLSXWorkbook.PreserveUnsupportedParts vaut true par défaut et conserve les parties personnalisées accessibles via des relations racine, classeur, feuille ou dessin inconnues
UnsupportedPartCount and UnsupportedPartBytes report retained content, while ClearUnsupportedParts intentionally removes it before a save
Échange enrichi via le presse-papiers
Call range-level CopyToClipboard pour publier à la fois du texte tabulaire Unicode et du CF_HTML, avec mise en forme d'affichage, formules, cellules fusionnées, liens et délimiteurs incorporés correctement cités
Édition du code source VBA
After loading a VBA project, update an existing module's SourceCode and save the workbook or standalone storage
Le rédacteur re-compresse uniquement le flux source modifié tout en préservant les préfixes de flux et le contenu du projet non touché
Contrôles de formulaire classiques
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';Les wrappers typés renvoyés exposent les étiquettes, les types de contrôle, les ancres, l'énumération et la suppression
Correctifs de format sélectifs
Target.ApplyFormatPatch(Source, [xfpFont, xfpFill, xfpNumberFormat]);Une plage source plus petite se répète sur une cible plus grande et la mise en forme non sélectionnée ainsi que toutes les valeurs de destination restent inchangées
Exportation de jeu de données maître-détail
Enable TDataToXLS.ReadDetailTables to export linked detail datasets below every master record and enable IndentDetailTables to add one column of indentation per relationship level
WordArt
Shape := Sheet.AddWordArt('HotXLS', 'textArchUp', 2, 2, 6, 8);
Shape.TextColor := $FF00A060;
Shape.OutlineColor := $FF17365D;L'ancre DrawingML complète survit aux cycles ultérieurs d'ouverture et d'enregistrement grâce au chemin de préservation du dessin brut
See Demo\Delphi\FeatureShowcase pour un exemple exécutable compact qui combine impression PDF, contrôles de formulaire, correctifs de format et WordArt