ループ処理
ループ処理は、配列やオブジェクト内のデータを繰り返しレンダリ ングするために使用されます。ループの開始と終了を示すマーカーを定義することで、繰り返す内容を識別します。ここでは、いくつかの一般的なシナリオについて説明します。
配列の反復処理
1. 構文の説明
- ループの現在の項目は
{d.array[i].プロパティ}タグで定義し、次の項目は{d.array[i+1].プロパティ}で指定することで、ループ範囲を識別します。 - ループ時には、最初の行(
[i]の部分)が自動的にテンプレートとして繰り返し使用されます。テンプレートにはループの例を一度だけ記述すれば十分です。
構文の例:
2. 例:シンプルな配列のループ
データ
テンプレート
結果
3. 例:ネストされた配列のループ
配列の中に配列がネストされている場合に適用でき、無限の階層までネスト可能です。
データ
テンプレート
結果
4. 例:双方向ループ(高度な機能、v4.8.0以降)
双方向ループは、行と列の両方で同時に反復処理を行うことができ、比較表などの複雑なレイアウトを生成するのに適しています(注:現在、一部の形式はDOCX、HTML、MDテンプレートでのみ公式にサポートされています)。
データ
テンプレート
結果
5. 例:ループイテレーター値へのアクセス(v4.0.0以降)
ループ内で現在の反復処理のインデックス値に直 接アクセスできるため、特殊な書式設定の要件を満たすのに役立ちます。
テンプレートの例
注:ドットの数は異なる階層のインデックス値を示します(例:
.iは現在の階層、..iは上位の階層)。現在、逆順の問題が存在しますので、詳細は公式ドキュメントを参照してください。
オブジェクトの反復処理
1. 構文の説明
- オブジェクトのプロパティについては、
.attを使用してプロパティ名を取得し、.valを使用してプロパティ値を取得できます。 - 反復処理では、各プロパティ項目が一つずつ処理されます。
構文の例:
2. 例:オブジェクトプロパティの反復処理
データ
テンプレート
結果
ソート処理
ソート機能を利用すると、テンプレート内で配列データを直接ソートできます。
1. 構文の説明:昇順ソート
- ループタグ内でプロパティをソート基準として使用します。構文形式は次のとおりです。
- 複数のソート基準が必要な場合は、角括弧内に複数のソートプロパティをカンマで区切って指定します。
2. 例:数値プロパティによるソート
データ
テンプレート
結果
3. 例:複数プロパティによるソート
データ
テンプレート
結果
フィルタリング処理
フィルタリング処理は、特定の条件に基づいてループ内のデータ行をフィルタリングするために使用されます。
1. 構文の説明:数値フィルタリング
- ループタグに条件(例:
age > 19)を追加します。構文形式は次のとおりです。
2. 例:数値フィルタリング
データ
テンプレート
結果
3. 構文の説明:文字列フィルタリング
- 文字列条件はシングルクォーテーションで指定します。形式の例:
4. 例:文字列フィルタリング
データ
テンプレート
結果
5. 構文の説明:最初のN項目をフィルタリング
- ループインデックス
iを利用して、最初のN個の要素をフィルタリングできます。構文の例:
6. 例:最初の2項目をフィルタリング
データ
テンプレート
結果
7. 構文の説明:最後のN項目を除外
- 負のインデックス
iを使用して、末尾からの項目を表します。例えば:{d.array[i=-1].プロパティ}は最後の項目を取得します。{d.array[i, i!=-1].プロパティ}は最後の項目を除外します。
8. 例:最後の1項目と最後の2項目を除外
データ
テンプレート
結果
9. 構文の説明:スマートフィルタリング
- スマート条件ブロックを使用すると、複雑な条件に基づいて行全体を非表示にできます。形式の例:
10. 例:スマートフィルタリング
データ
テンプレート
結果
(注:テンプレート内の「Falcon」を含む行は、スマートフィルタリング条件によって削除されます。)
重複排除処理
1. 構文の説明
- カスタムイテレーターを使用すると、特定のプロパティ値に基づいて一意(重複しない)の項目を取得できます。構文は通常のループと似ていますが、重複する項目は自動的に無視されます。
形式の例:

