高度なワークブック ワークフロー
このガイドでは、基本的なセルの読み書きを超えたワークブック ワークフローで特に役立つ高レベル API をまとめています
印刷用 PDF 出力
クラシック XLS と最新の XLSX のワークブック、ワークシート、範囲の PDF エクスポートは、書式設定された値、セルの塗りつぶし、フォントの色と強調、配置、罫線、オプションのグリッド線、列幅、行の高さ、手動改ページ、繰り返し印刷タイトル、3 部構成のヘッダーとフッターを描画します
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');
最新のワークブックでも、TXLSXWorkbook、TXLSXWorksheet、TXLSXRange を通じて同じ直接エントリ ポイントを利用できます
ModernSheet.PrintArea := '$A$1:$H$80';
ModernSheet.PrintTitleRows := '$1:$3';
ModernSheet.AddRowBreak(45);
ModernWorkbook.SaveAsPDF('modern-report.pdf');
WinAnsi 外のテキストは、埋め込み TrueType CID フォントと ToUnicode マップで書き込まれるため、リーダー側で Unicode テキストをレンダリング・抽出できます
ワークブックが特定のスクリプトやコーポレート フォントを必要とする場合は TXLSPDFExport.UnicodeFontFile を設定します。設定しない場合、エクスポーターは利用可能であれば適切なインストール済みフォントを選択します
プレビュー、PDF、カスタム出力が同じ用紙ジオメトリ、余白、フィット倍率、手動改ページ、繰り返しタイトル、ページ順序、ヘッダー、フッター、図形アンカーを共有する必要がある場合は、TXLSPaginationModel を使用します
Pages := Exporter.CreatePaginationModel(Workbook);
try
Pages.SavePageAsMetafile(0, 'FirstPage.emf');
finally
Pages.Free;
end;
進行状況、キャンセル、診断
開始・処理・終了のコールバックには OnProgressEx を使用し、その中止引数を設定すると操作をキャンセルできます
保存、オープン、再計算が失敗した後は、数値の戻り値だけに頼らず、Diagnostics または LastDiagnostic を確認してください
未サポートの OOXML パッケージ パート
TXLSXWorkbook.PreserveUnsupportedParts は既定で true であり、不明なルート、ワークブック、ワークシート、描画リレーションシップから到達できるカスタム パートを保持します
保持された内容は UnsupportedPartCount と UnsupportedPartBytes で報告され、ClearUnsupportedParts を使うと保存の前に意図的に削除できます
リッチなクリップボード交換
範囲レベルの CopyToClipboard を呼び出すと、Unicode の表形式テキストと CF_HTML の両方が公開されます。表示書式、数式、結合セル、リンク、安全に引用された埋め込み区切り文字も含まれます
VBA ソース編集
VBA プロジェクトをロードした後、既存モジュールの SourceCode を更新し、ワークブックまたはスタンドアロン ストレージを保存します
ライターは編集されたソース ストリームのみを再圧縮し、ストリーム プレフィックスと未触及のプロジェクト内容はそのまま保持します
クラシック フォーム コントロール
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';
型付きラッパーは、ラベル、コントロールの種類、アンカー、チェック状態、フラット/3D 外観、ラジオ グループのリンク、マクロ バインディング、リンク セル、入力範囲、列挙、削除を、クラシック XLS のオープン/保存サイクルをまたいで保持します
選択的書式パッチ
Target.ApplyFormatPatch(Source, [xfpFont, xfpFill, xfpNumberFormat]);
小さいソース範囲が大きいターゲットにタイル状に適用され、未選択の書式とすべてのコピー先の値は変更されません
マスター・詳細データセット エクスポート
TDataToXLS.ReadDetailTables を有効にすると、すべてのマスター レコードの下にリンクされた詳細データセットがエクスポートされ、IndentDetailTables を有効にするとリレーションシップ レベルごとに 1 列のインデントが追加されます
WordArt
Shape := Sheet.AddWordArt('HotXLS', 'textArchUp', 2, 2, 6, 8);
Shape.TextColor := $FF00A060;
Shape.OutlineColor := $FF17365D;
完全な DrawingML アンカーは、raw 描画保持パスを通じて、その後のオープン/保存サイクルでも保持されます
PDF 印刷、フォーム コントロール、書式パッチ、WordArt を 1 つにまとめたコンパクトな実行可能サンプルについては、Demo\Delphi\FeatureShowcase を参照してください