メインコンテンツへスキップ

10 · スタイリングとブランディング

シナリオ

出力 Excel ファイルは会社のブランドと一致する必要があります ― シートタブ色、フォント、数値書式、タイトル領域の結合セルといったものです。

スタイルはテンプレート内で直接作成

xl3 はテンプレートのすべてのスタイルをそのまま保存します。データブロックは行を展開しますが、展開された各行は元テンプレート行のフォント、塗りつぶし、罫線、数値書式、配置などをそのまま継承します。データブロックの下のフッター行もスタイルを維持したまま、ブロックが伸びた分だけ下にずれます。

別途「style」ディレクティブを書く必要はありません ― Excel スタイルはテンプレート .xlsx 内にそのまま生きています。

シート tabColor

Excel でタブ色を指定します(シートタブ右クリック → タブの色)。xl3 はこれを ADR-0032 #3 に従ってそのまま保存します。出力シートはテンプレートのタブ色をそのまま維持します。

数値書式と TEXT()

数値をどう表示するかを制御する方法は 2 つあります。

1. テンプレートセルの numFmt. テンプレートセルに #,##0.00[$¥-ja-JP]#,##0 のような数値書式を事前に指定しておきます。結果セルも同じ書式を持ちます。

2. 式内の TEXT(). 望む書式で強制的に文字列セルを作ります。

{{ TEXT([金額], "¥#,##0") }}
{{ TEXT([日付], "yyyy-mm-dd") }}
{{ TEXT([比率], "0.0%") }}

文字列連結に書式化された値を差し込む必要があるときは TEXT() を使います。例: {{ "合計: " & TEXT(SUM([金額]), "¥#,##0") }}

TEXT() がサポートする書式は Excel コア書式表に従います。コア表外の書式は ADR-0021 に従って実装定義動作です。

結合セル

xl3 はテンプレートの結合を保存します。

  • データブロック上部の結合は位置をそのまま維持します。
  • データブロック下部の結合はブロックが伸びた分だけ下に押されます。
  • データブロック内部の結合(テンプレート 1 行内のセル結合)は展開された全行にそのまま適用されます。

データブロックの境界を縦に跨ぐ結合は ADR-0021 に従って実装定義動作です ― 移植可能なテンプレートでは避けてください。

結合セルのヘッダー: サポート済

取引明細書、発注書、精算書のようなベンダーテンプレートは、複数の列をまとめて 1 つのタイトルを付けるためにヘッダーセルを横に結合するケースが多いです。xl3 は 0.5.0 からこれをネイティブで読みます(ADR-0033 基準)。横に結合されたヘッダーは結合マスター位置で1 つの論理列を構成し、同じ行のスレーブセルは透明として処理されます。

例: B1:D1 = "品目"(3 列にわたって結合)と E1 = "数量" で構成されたヘッダー行は、品目数量 という 2 つのソース列として読まれます。品目 データは B 列から読み、C と D 列は B の結合スレーブなのでスキップされます。

複数行にわたるヘッダー領域(行と列の両方を跨ぐ 2D 結合)も動作します ― source_table をヘッダー領域の最後の行に合わせて指定すれば、その直下からデータが始まります。J11:M12 領域なら source_table = J12:N と設定します(J11:N にすると行 12 が結合マスターのテキストを引き連れる幽霊データ行として捉えられます)。

ソースに実際に同名の列が 2 つある場合(結合のためではなく)、xl3/source/duplicate-name は依然として発生します。絞り込み(narrowing)は結合スレーブにだけ適用されます。

印刷設定

pageSetup(向き、余白、印刷範囲)、views(ズーム、ウィンドウ枠の固定)、defaultRowHeight はすべて ADR-0032 #3 に従って保存されます。テンプレートで一度設定すれば結果物にもそのまま適用されます。

メモ

  • ワークブックプロパティ(テーマ、定義された名前、印刷範囲)はすべてそのまま保存されます。テンプレートに一度設定しておけば、すべての結果物がこれを継承します。
  • スペック参照: ADR-0032「Niche limits and workbook pass-through behaviors」、セル単位スタイリングは spec/evaluation.md の「Cell Evaluation」を参照。