HotXLS Docs

Erweiterte Arbeitsmappen-Workflows

Dieser Leitfaden gruppiert die übergeordneten APIs, die am nützlichsten sind, wenn ein Arbeitsmappen-Workflow über das einfache Lesen und Schreiben von Zellen hinausgeht

Druckfertige PDF-Ausgabe

Klassische XLS- und moderne XLSX-Arbeitsmappen-, Arbeitsblatt- und Bereichs-PDF-Exporte rendern formatierte Werte, Zellfüllungen, Schriftfarbe und -hervorhebung, Ausrichtung, Rahmen, optionale Gitterlinien, Spaltenbreiten, Zeilenhöhen, manuelle Seitenumbrüche, wiederholte Drucktitel sowie dreiteilige Kopf- und Fußzeilen

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');

Moderne Arbeitsmappen machen dieselben direkten Einstiegspunkte verfügbar über TXLSXWorkbook, TXLSXWorksheet, und TXLSXRange

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

Text außerhalb von WinAnsi wird mit einer eingebetteten TrueType-CID-Schriftart und einer ToUnicode-Zuordnung geschrieben, damit Betrachter Unicode-Text rendern und extrahieren können

Festlegen TXLSPDFExport.UnicodeFontFile wenn eine Arbeitsmappe eine bestimmte Schriftart oder Hausschrift benötigt, undernfalls wählt der Exporter eine geeignete installierte Schriftart aus, sofern verfügbar

Verwenden Sie TXLSPaginationModel , wenn Vorschau, PDF und eigene Ausgaben dieselbe Papiergeometrie teilen müssen — Ränder, Anpassungsskalierung, manuelle Umbrüche, wiederholte Titel, Seitenreihenfolge, Kopf- und Fußzeilen sowie Zeichnungsanker

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

Fortschritt, Abbrechen und Diagnose

Verwenden OnProgressEx für Begin-, Work- und End-Aufrufenbacks und legen Sie dessen Abbrech-Argument fest, um einen Vorgang abzubrechen

Prüfen Diagnostics oder LastDiagnostic nach Speicher-, Öffnungs- oder Neuberechnungsfehlern, anstatt sich nur auf einen numerischen Rückgabewert zu verlassen

Nicht unterstützte OOXML-Paketteile

TXLSXWorkbook.PreserveUnsupportedParts ist standardmäßig auf true gesetzt und behält benutzerdefinierte Teile bei, die über unbekannte Stamm-, Arbeitsmappen-, Arbeitsblatt- oder Zeichnungsbeziehungen erreichbar sind

UnsupportedPartCount und UnsupportedPartBytes behaltene Inhalte melden, während ClearUnsupportedParts entfernt es absichtlich vor dem Speichern

Rich-Text-Zwischenablageaustausch

Bereichsebene aufrufen CopyToClipboard um sowohl tabellarischen Unicode-Text als auch CF_HTML zu veröffentlichen, einschließlich Anzeigeformatierung, Formeln, verbundener Zellen, Links und sicher in Anführungszeichen gesetzter eingebetteter Trennzeichen

VBA-Quellcodebearbeitung

Aktualisieren Sie nach dem Laden eines VBA-Projekts das eines vorhandenen Moduls SourceCode und speichern Sie die Arbeitsmappe oder den eigenständigen Speicher

Der Writer komprimiert nur den bearbeiteten Quellstream neu, während Stream-Präfixe und unberührter Projektinhalt erhalten bleiben

Klassische Formularsteuerelemente

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';

Die zurückgegebenen typisierten Wrapper machen Beschriftungen, Steuerungstypen, Anker, Aufzählung und Löschung verfügbar

Selektive Format-Patches

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

Ein kleinerer Quellbereich wird kachelartig über ein größeres Ziel gelegt, und nicht ausgewählte Formatierungen sowie alle Zielwerte bleiben unverändert

Master-Detail-Datensatzexport

Aktivieren TDataToXLS.ReadDetailTables um verknüpfte Detaildatensätze unter jedem Masterdatensatz zu exportieren und zu aktivieren IndentDetailTables um eine Spalte Einzug pro Beziehungsebene hinzuzufügen

WordArt

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

Der vollständige DrawingML-Anker übersteht spätere Öffnungs- und Speicherzyklen durch den Pfad zur Erhaltung der Rohzeichnungen

Siehe Demo\Delphi\FeatureShowcase für ein kompaktes ausführbares Beispiel, das PDF-Druck, Formularsteuerelemente, Format-Patches und WordArt kombiniert