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