ドキュメント・ジェネレータ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_delimiter
とdocument_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
}
テンプレート

出力

サンプル・ドキュメント
MS Excelテンプレート | JSONデータ | 出力 |
---|---|---|
エクセル Basic.xlsx | エクセル Basic.json | Excel-Basic - output.xlsx |
垂直ループ・タグ
構文: {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
}
]
}
テンプレート

出力

サンプル・ドキュメント
MS Excelテンプレート | JSONデータ | 出力 |
---|---|---|
エクセル VLoop.xlsx | エクセル VLoop.json | Excel-VLoop-output.xlsx |
水平ループ・タグ
構文: {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
}
]
}
テンプレート

出力

サンプル・ドキュメント
MS Excelテンプレート | JSONデータ | 出力 |
---|---|---|
エクセル HLoop.xlsx | エクセル HLoop.json | Excel-HLoop-output.xlsx |
イメージ・タグ
構文: {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"
}
}
テンプレート

結果

サンプル・ドキュメント
MS Excelテンプレート | JSONデータ | 出力 |
---|---|---|
エクセル Images.xlsx | エクセル Images.json | Excelイメージ-output.xlsx |
セル・スタイリング・タグ
構文: {cs:style}
または{cellStyling:style}
{cs:style}
タグは、Excelセルにスタイルを追加するために使用します。スタイリング・オプションには次のものがあります。
- フォント
- 水平方向の位置合せ
- 垂直方向の位置合せ
- 背景色
- 枠線
スタイリングに関する考慮事項:
- 各セルに複数のセル・スタイルを適用できます。左から右に適用されます。
- スタイリングでは、追加のスタイル設定を適用する前に、各セルの既存のスタイル設定が考慮されます。
- このスタイルがセル全体に適用されます。
StyleColor
- colorType (必須):
OPAQUE_HEX_RGB
- 値: 6桁の16進文字列
例
{
"color": {
"colorType": "OPAQUE_HEX_RGB",
"value": "FFFF00"
}
}
境界スタイル
- borderStyle (必須):
NONE
、MEDIUM
、DOUBLE
、DASHED
、DOTTED
、MEDIUM_DASHED
、MEDIUM_DASH_DOT
、MEDIUM_DASH_DOT_DOT
- 色: StyleColor
例
{
"top": {
"borderStyle": "MEDIUM",
"color": {
"colorType": "OPAQUE_HEX_RGB",
"value": "FFFF00"
}
}
}
フォント
- familyName: 文字列
- sizeInPoints: 数値
- 色: StyleColor
- isItalic: ブール
- isBold: ブール
- isStrikethrough: ブール
- 下線:
NONE
、SINGLE
、DOUBLE
- 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"からのものです
サンプル・ドキュメント
MS Excelテンプレート | JSONデータ | 出力 |
---|---|---|
エクセル CellStyling.xlsx | エクセル CellStyling.json | Excel-CellStyling-output.xlsx |
ハイパーリンク・タグ
構文: {hy:hyperlink}
、{hyperlink:hyperlink}
または{*hyperlink}
{hy:hyperlink}
タグは、クリック可能なハイパーリンク(電子メール・アドレスを含む)をドキュメントに挿入するために使用します。
ハイパーリンクには次の2つのタイプがあります。
- 外部
- 内部
外部ハイパーリンク
Excelドキュメントの外部を参照するハイパーリンク。次のプロパティを持つオブジェクトとして指定する必要があります。
type
: 外部url
: 文字列形式のURL。例:https://www.oracle.com
url_text
(オプション): URLのかわりに表示される文字列
内部ハイパーリンク
Excelドキュメント内のセルを参照するハイパーリンク。次のプロパティを持つオブジェクトとして指定する必要があります。
type
: 内部link
: 文字列形式のExcel参照。例: ワークシートSheet1
のセルD6
を参照するSheet1!D6
link_text
(オプション): リンクのかわりに表示される文字列。tooltip
(オプション): ツールチップとして表示される文字列
例
データ
{
"external_link": {
"type": "EXTERNAL",
"url": "https://www.oracle.com",
"url_text": "Link to Oracle.com"
},
"internal_link": {
"type": "INTERNAL",
"link": "Sheet1!D6",
"link_text": "Link to cell D6"
},
"links": [
{
"name": "External link",
"link": {
"type": "EXTERNAL",
"url": "https://www.oracle.com",
"url_text": "This is an external link to oracle.com in a Loop"
}
},
{
"name": "Internal link",
"link": {
"type": "INTERNAL",
"link": "Sheet1!D6",
"link_text": "This is an internal link to cell D6 in a Loop",
"tooltip": "Hello from tooltip!"
}
}
]
}
テンプレート

出力

サンプル・ドキュメント
MS Excelテンプレート | JSONデータ | 出力 |
---|---|---|
エクセル Hyperlinks.xlsx | エクセル Hyperlinks.json | Excel- ハイパーリンク-output.xlsx |
改ページ・タグ
構文: {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
}
]
}
テンプレート

出力

サンプル・ドキュメント
MS Excelテンプレート | JSONデータ | 出力 |
---|---|---|
エクセル PageBreak.xlsx | エクセル PageBreak.json | Excel-PageBreak-output.xlsx |
タグをスキップ
構文: {skip}
ワークシート名の{skip}
タグにより、そのワークシート内のタグの解決が防止されます。
例
データ
{
"a_first_name": "Fred",
"a_last_name": "Flintstone",
"a_number": 42,
"a_boolean": true
}
テンプレート

出力

サンプル文書
MS Excelテンプレート | JSONデータ | 出力 |
---|---|---|
エクセル Skip.xlsx | エクセル Skip.json | Excel- スキップ-output.xlsx |
タグ- 高度な例
ループのネスト
この例では、3つのネステッド・ループがあります。2つの垂直ループと1つの水平ループ。
データ
データ内のループの3つのレベルは、genres、movies、および 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に処理されます。
- ループB2:D6 (genres)は垂直に展開されます。
- ループB3:D6 (movies - Comedy)は水平方向に展開されます。
- ループB5:D5 (アクター- Groundhog Day)は垂直に展開されます。
- ループE5:G5 (アクター- Notting Hill)は垂直に展開されます。
- ループB9:D13 (movies - Science Fiction)は水平方向に拡張されます。
- ループB11:D11 (アクター- 到着)は垂直に展開されます。
- ループE11:G11 (アクター- マトリックス)は垂直に展開されます。

ノート
- 各データ配列は、各ワークシートで最大1つのループで参照できます。
- ループ内のすべてのタグは、そのループのコンテキストで解決されます。この例では、
{name}
基本タグは、異なる意味(genre名、ムービー名、アクター名)を持つ各ループで使用されます。
MS Excelテンプレート | JSONデータ | 出力 |
---|---|---|
エクセル Loops.xlsx | エクセル Loops.json | Excelループ-output.xlsx |
グラフ
この例では、2つのチャートを含むテンプレートを作成します。チャートのデータは、垂直ループを含むセルの範囲から取得されます。チャート・タイトルは、基本タグを含むセルを参照します。
データ
{
"chart_title": "Revenue/Expense",
"months": [
{
"month": "January",
"revenue": 23,
"expense": 19
},
{
"month": "February",
"revenue": 24,
"expense": 22
},
{
"month": "March",
"revenue": 25,
"expense": 18
}
]
}
テンプレート
