ドキュメント・ジェネレータMS Excelタグ

タグとは、JSONデータを使用してドキュメント・テンプレートでドキュメント・ジェネレータが置換できる式を指します。

データ

JSONデータは、オブジェクト・ストレージに格納することも、リクエストでインラインで指定することもできます。

例- オブジェクト・ストレージに格納

  "data": {    
    "source": "OBJECT_STORAGE",
    "namespace": "my_namespace",
    "bucketName": "my_bucket",
    "objectName": "my_folder/names.json"
  }

例- data.contentでインラインで指定

  "data": {
    "source": "INLINE",
    "content": [{"name":"John"},{"name":"Monica"}]
  }

タグ

タグには、JSONデータの一部の値へのパスが含まれます。たとえば、次のデータの場合:

{
  "customer": {
    "first_name": "Jack",
    "last_name": "Smith"
  }
}

これはテンプレートで使用できます。

Hello {customer.first_name} {customer.last_name}!

このテキストを生成するには:

Hello Jack Smith!

タグ・デリミタ

デフォルトのタグ・デリミタ{および}は、次の値に置き換えることができます。

  • {{および}}
  • {{{および}}}

次に示すように、document_generator_start_delimiterdocument_generator_end_delimiterの両方を使用して、MS Excelテンプレートのカスタム・プロパティにタグ・デリミタを指定できます。


区切り文字

前述の例では、これをテンプレートで使用できます。

Hello {{{customer.first_name}}} {{{customer.last_name}}}!

このテキストを生成するには:

Hello Jack Smith!

基本タグ

構文: {basic}

テキスト、数値またはブール値を挿入するために使用されます。

サンプル

データ

{ 
  "a_first_name": "John",
  "a_last_name": "Smith",
  "a_number": 42,
  "a_boolean": true
}

テンプレート


テンプレート

出力


テンプレート

垂直ループ・タグ

構文: {vl:loop}...{/loop}または{#loop}...{/loop}

{vl:loop}タグは、セルの範囲のコピーを垂直に生成するために使用されます。コピーされたリージョンは、タグ{vl:loop}および{/loop}の位置によって決まります。{vl:loop}{/loop}の両方がリージョンに含まれます。リージョンの下のセルはプッシュ・ダウンされます。

データ

{
  "customers": [
    {
      "name": "John Smith",
      "age": 23,
      "is_last_bill_paid": true
    },
    {
      "name": "Alice Martin",
      "age": 34,
      "is_last_bill_paid": false
    },
    {
      "name": "Joe West",
      "age": 45,
      "is_last_bill_paid": false
    },
    {
      "name": "Mary Moss",
      "age": 56,
      "is_last_bill_paid": true
    }
  ]
}

テンプレート


テンプレート

出力


出力

水平ループ・タグ

構文: {hl:loop}...{/loop}または{:loop}...{/loop}

{hl:loop}タグは、セルのリージョンのコピーを水平に生成するために使用されます。コピーされたリージョンは、タグ{hl:loop}および{/loop}の位置によって決まります。{hl:loop}{/loop}の両方がリージョンに含まれます。領域右側のセルは右側にプッシュされます。

データ

{
  "days": [
    {
      "day_of_week": "Monday",
      "steps": 1023,
      "calories": 145
    },
    {
      "day_of_week": "Tuesday",
      "steps":2345,
      "calories": 267
    },
    {
      "day_of_week": "Wednesday",
      "steps": 3101,
      "calories": 345
    },
    {
      "day_of_week": "Thursday",
      "steps": 4523,
      "calories": 412
    },
    {
      "day_of_week": "Friday",
      "steps": 4321,
      "calories": 389
    }
  ]
}

テンプレート


テンプレート

出力


出力

イメージ・タグ

構文: {im:image}{image:image}または{%image}

{im:image}タグは、ドキュメントにイメージを注入するために使用されます。イメージは、OCIオブジェクト・ストレージ・バケットまたはURLから提供できます。イメージはオブジェクトとして提供する必要があります。次に例を示します。

{
  "my_image": {
    "source": "OBJECT_STORAGE",
    "objectName": "image.png",
    "namespace": "object_storage_namespace",
    "bucketName": "my_bucket_name",
    "mediaType": "image/png"
  }
}

標準

次に、各ソース・タイプの特定のスキーマについて説明します。さらに、イメージのフォーマットを制御するために、次のプロパティを(オプションで)イメージ・オブジェクトに含めることができます。

  • width: 数字のstringの後に単位が続きます。E.G. 200px。イメージの幅を設定します。
  • height: 数字のstringの後に単位が続きます。E.G. 200px。イメージの高さを設定します。
  • alt_text: string。これは、イメージの代替テキストとして設定されます。

サポートされている単位:

文書ジェネレータでは、イメージに対して次の単位がサポートされています。

  • px (ピクセル)
  • (インチ)
  • cm (センチメートル)
  • %(パーセント)

挿入されたイメージのデフォルト・サイズ:

  • 元のサイズは保存されます。

画像のスケール変更:

1つのイメージ・ディメンションのみが指定されている場合、アスペクト比を保持するために、欠落しているディメンションのスケール値が文書ジェネレータによって計算されます。たとえば、次のようにします。

  • widthを指定しても heightを指定しない場合、拡大縮小された高さは、イメージのネイティブ寸法と指定された widthに基づいて計算されます。
  • 高さを指定してもを指定しない場合、拡大縮小された幅は、イメージのネイティブ・ディメンションおよび指定された高さに基づいて計算されます。

サポートされている形式

ドキュメント・ジェネレータでは、次のイメージ形式がサポートされています。

  • PNG
  • JPG
  • GIF
  • BMP

スキーマ

OCIオブジェクト・ストレージ

  • source: OBJECT_STORAGEに設定する必要があります。
  • objectName: ファイルのパスと名前
  • namespace: オブジェクト・ストレージ・バケットのネームスペース
  • bucketName: ファイルを含むバケットの名前
  • mediaType: イメージのメディア・タイプ(MIME)

例- 指定した幅と高さ

データ
{
  "my_image": {
    "source": "OBJECT_STORAGE",
    "objectName": "image.png",
    "namespace": "object_storage_namespace",
    "bucketName": "my_bucket_name",
    "mediaType": "image/png",
    "width": "400px",
    "height": "200px"
  }
}
テンプレート

テンプレート
結果

出力

URL

  • source: URLに設定する必要があります。
  • url: string形式のイメージURL

ノート: インターネットからのイメージを使用するには、Document Generatorでインターネットへのアウトバウンド・アクセスが必要です。たとえば、ドキュメント・ジェネレータがOCIのプライベート・サブネットで実行されている場合、ドキュメント・ジェネレータがインターネットに接続できるようにNAT Gatewayを設定できます。

例- 幅と高さが指定されていません

データ
{
  "my_image": {
    "source": "URL",
    "url": "https://www.oracle.com/.../.jpg"
  }
}
テンプレート

テンプレート
結果

出力

データURL

ドキュメント・ジェネレータでは、データURL内のイメージを渡す機能もサポートされています。イメージはBase64エンコードされている必要があります。

  • source: URLに設定する必要があります。
  • url: string形式のイメージURL

例- 高さのみが指定されています

データ
{
  "my_image": {
    "source": "URL",
    "url": "data:image/png;base64,iVBORw0KG...go",
    "height": "150px"
  }
}
テンプレート

テンプレート
結果

出力

セル・スタイリング・タグ

構文: {cs:style}または{cellStyling:style}

{cs:style}タグは、Excelセルにスタイルを追加するために使用します。スタイリング・オプションには次のものがあります。

  • フォント
  • 水平方向の位置合せ
  • 垂直方向の位置合せ
  • 背景色
  • 枠線

スタイリングに関する考慮事項:

  • 各セルに複数のセル・スタイルを適用できます。左から右に適用されます。
  • スタイリングでは、追加のスタイル設定を適用する前に、各セルの既存のスタイル設定が考慮されます。
  • このスタイルがセル全体に適用されます。

StyleColor

  • colorType (必須): OPAQUE_HEX_RGB
  • 値: 6桁の16進文字列

{
  "color": {
    "colorType": "OPAQUE_HEX_RGB",
    "value": "FFFF00"
  }
}

境界スタイル

  • borderStyle (必須): NONEMEDIUMDOUBLEDASHEDDOTTEDMEDIUM_DASHEDMEDIUM_DASH_DOTMEDIUM_DASH_DOT_DOT
  • 色: StyleColor

{
  "top": {
    "borderStyle": "MEDIUM",
    "color": {
      "colorType": "OPAQUE_HEX_RGB",
      "value": "FFFF00"
    }
  }
}

フォント

  • familyName: 文字列
  • sizeInPoints: 数値
  • 色: StyleColor
  • isItalic: ブール
  • isBold: ブール
  • isStrikethrough: ブール
  • 下線: NONESINGLEDOUBLE
  • textPosition: BASELINE, SUPERSCRIPT, SUBSCRIPT

{
  "font": {
    "familyName": "Cookie",
    "sizeInPoints": 20,
    "color": {
      "colorType": "OPAQUE_HEX_RGB",
      "value": "FF0000"
    },
    "isBold": true,
    "isItalic": true,
    "isStrikethrough": true,
    "underline": "DOUBLE",
    "textPosition": "SUPERSCRIPT"
  }
}

水平配置

  • horizontalAlignment: LEFT, CENTER, RIGHT, JUSTIFY

{
  "horizontalAlignment": "RIGHT"
}

垂直方向の位置合せ

  • verticalAlignment: TOP, CENTER, BOTTOM

{
  "verticalAlignment": "TOP"
}

セルの背景色

  • backgroundType (必須): SINGLE_FILL_COLOR
  • 色: StyleColor

{
  "background": {
    "backgroundType": "SINGLE_FILL_COLOR",
    "color": {
      "colorType": "OPAQUE_HEX_RGB",
      "value": "DDDDDD"
    }
  }
}

枠線

  • トップ: BorderStyle
  • 下部: BorderStyle
  • 左: BorderStyle
  • 右: BorderStyle

{
  "top": {
    "borderStyle": "MEDIUM",
    "color": {
      "colorType": "OPAQUE_HEX_RGB",
      "value": "FFFF00"
    }
  },
  "bottom": {
    "borderStyle": "DASHED",
    "color": {
      "colorType": "OPAQUE_HEX_RGB",
      "value": "FF00FF"
    }
  },
  "left": {
    "borderStyle": "DOTTED",
  },
  "right": {
    "borderStyle": "MEDIUM_DASHED",
  }
}

データ

{
  "cookieBold": {
    "font": {
      "familyName": "Cookie",
      "sizeInPoints": 20,
      "isBold": true
    }
  },
  "products": [
    {
      "name": "Winter Gloves",
      "remaining": 444,
      "s1": {
        "font": {
          "underline": "DOUBLE"
        }
      },
      "s2": {
        "background": {
          "backgroundType": "SINGLE_FILL_COLOR",
          "color": {
            "colorType": "OPAQUE_HEX_RGB",
            "value": "DDDDDD"
          }
        }
      }
    },
    {
      "name": "Snow Shovel",
      "remaining": 11,
      "s2": {
        "font": {
          "color": {
            "colorType": "OPAQUE_HEX_RGB",
            "value": "FF0000"
          }
        },
        "background": {
          "backgroundType": "SINGLE_FILL_COLOR",
          "color": {
            "colorType": "OPAQUE_HEX_RGB",
            "value": "BBBBBB"
          }
        }
      }
    }
  ]
}

テンプレート


テンプレート

出力


出力

ノート

セルB3を分析します。テンプレートに{name}{cs:cookieBold}{cs:s1}が含まれる

  • 黄色いバックグラウドの盛り土は元のセルのスタイルからあります
  • {name}: データから「冬の手袋」として解決されます。
  • {cs:cookieBold}: フォントCookieは、データのルートで定義されたスタイル"cookieBold"からのものです
  • {cs:s1}: 二重下線は、冬手袋のスタイル"s1"からのものです

改ページ・タグ

構文: {pb:boolean}または{pageBreak:boolean}

{pb:boolean}タグは、boolean条件がtrueの場合に改ページを作成します。

データ

{
  "movies": [
    {
      "name": "Arrival",
      "actors": [
        {
          "name": "Amy Adams"
        },
        {
          "name": "Jeremy Renner"
        }
      ],
      "pageBreak_condition": true
    },
    {
      "name": "Groundhog Day",
      "actors": [
        {
          "name": "Bill Murray"
        },
        {
          "name": "Andie MacDowell"
        }
      ],
      "pageBreak_condition": false
    },
    {
      "name": "Notting Hill",
      "actors": [
        {
          "name": "Hugh Grant"
        },
        {
          "name": "Julia Roberts"
        },
        {
          "name": "Rhys Ifans"
        }
      ],
      "pageBreak_condition": false
    }
  ]
}

テンプレート


テンプレート

出力


出力

タグをスキップ

構文: {skip}

ワークシート名の{skip}タグにより、そのワークシート内のタグの解決が防止されます。

データ

{
  "a_first_name": "Fred",
  "a_last_name": "Flintstone",
  "a_number": 42,
  "a_boolean": true
}

テンプレート


テンプレート

出力


出力

タグ- 高度な例

ループのネスト

この例では、3つのネステッド・ループがあります。2つの垂直ループと1つの水平ループ。

データ

データ内のループの3つのレベルは、genresmovies、および actorsです。

{
  "genres": [
    {
      "name": "Comedy",
      "movies": [
        {
          "name": "Groundhog Day",
          "actors": [
            {
              "name": "Bill Murray",
              "birth_year": 1950
            },
            {
              "name": "Andie MacDowell",
              "birth_year": 1958
            }
          ]
        },
        {
          "name": "Notting Hill",
          "actors": [
            {
              "name": "Hugh Grant",
              "birth_year": 1960
            },
            {
              "name": "Julia Roberts",
              "birth_year": 1967
            },
            {
              "name": "Rhys Ifans",
              "birth_year": 1967
            }
          ]
        }
      ]
    },
    {
      "name": "Science Fiction",
      "movies": [
        {
          "name": "Arrival",
          "actors": [
            {
              "name": "Amy Adams",
              "birth_year": 1974
            },
            {
              "name": "Jeremy Renner",
              "birth_year": 1971
            }
          ]
        },
        {
          "name": "The Matrix",
          "actors": [
            {
              "name": "Keanu Reeves",
              "birth_year": 1964
            },
            {
              "name": "Carrie-Anne Moss",
              "birth_year": 1967
            },
            {
              "name": "Laurence Fishburne",
              "birth_year": 1961
            }
          ]
        }
      ]
    }
  ]
}

テンプレート


テンプレート

出力

この例のループ展開のウォークスルー

ループは、各ワークシートで最上位行から最下位行に解決されます。各行は leftから rightに処理されます。

  1. ループB2:D6 (genres)は垂直に展開されます。
  2. ループB3:D6 (movies - Comedy)は水平方向に展開されます。
  3. ループB5:D5 (アクター- Groundhog Day)は垂直に展開されます。
  4. ループE5:G5 (アクター- Notting Hill)は垂直に展開されます。
  5. ループB9:D13 (movies - Science Fiction)は水平方向に拡張されます。
  6. ループB11:D11 (アクター- 到着)は垂直に展開されます。
  7. ループE11:G11 (アクター- マトリックス)は垂直に展開されます。

出力

ノート

  • 各データ配列は、各ワークシートで最大1つのループで参照できます。
  • ループ内のすべてのタグは、そのループのコンテキストで解決されます。この例では、{name}基本タグは、異なる意味(genre名、ムービー名、アクター名)を持つ各ループで使用されます。

グラフ

この例では、2つのチャートを含むテンプレートを作成します。チャートのデータは、垂直ループを含むセルの範囲から取得されます。チャート・タイトルは、基本タグを含むセルを参照します。

データ

{
  "chart_title": "Revenue/Expense",
  "months": [
    {
      "month": "January",
      "revenue": 23,
      "expense": 19
    },
    {
      "month": "February",
      "revenue": 24,
      "expense": 22
    },
    {
      "month": "March",
      "revenue": 25,
      "expense": 18
    }
  ]
}

テンプレート


テンプレート