HotXLS Docs

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