JSON のデータを使用して、当初テンプレートとして作成されたグラフをコピーし、そのグラフ用にデータシートを新たに用意できます。新しいプレゼンテーションを構築するために用いられる特定のテンプレートを制御することができます。テンプレートは何度も使用できます。
PowerPoint テンプレートとJSON データは、ローカルでもリモートでも保存できます。JSON データは、ウェブサービスによってオンザフライで生成することができます。
下記に示されるthink-cell 用JSONデータのサンプルは、think-cell インストール ディレクトリのサブフォルダー ppttc のファイル sample.ppttc にあります。JSON では、テンプレートの連結から作成されるプレゼンテーションが特定されています。ppttc/ppttc-schema.jsonでのスキーマに準拠しています。
ルート レベルには配列されたアイテムがあります。どのアイテムにも、そのグラフ用の特定されたテンプレート ファイルとデータがあります。多種多様なテンプレートは連結することができ、単一のテンプレートは複数回使用できます。簡単にできる例として、単一のテンプレートでも1回の使用でデータ付きテンプレートに含まれるグラフ全体に適用されます。
配列された連結テンプレートの各アイテムには、2 つのキーが含まれています: テンプレート および
データ。
テンプレートの値は、名前が識別子として設定されている think-cell グラフ付きの PowerPoint ファイルへのパスとなります (「自動化する方法」を参照)。テンプレート ファイルは、「テンプレートのリモート送信」で説明されている通り、リモートの場所からも取得できます。
キーの データの値は、テンプレートにあるグラフの JSON 形式のデータ表のリストです。リストの各項目には 2 つのプロパティ、すなわち
名前と
表があります。
名前は、その名前を使用するグラフを指定し、
表 にはデータ表が含まれます。
表の値の構造は、系列を表す行と項目を表す列を持つ入れ替えされていないデータシートと一致しています。既定のグラフで行の順序は以下のとおりです:
名称が付けられるグラフはすべて、JSON で参照することができます。データシートが特定のレイアウトの場合は、個別のチャプターを確認するか、参照用のグラフ内部データシートを開きます。
注:think-cell データシート範囲内のセルはすべて、あらゆる種類のテキストに対応しています。必要な場合、最初の行の最初のセルはフィルすることもできます。
tableキーの値を構成するデータは、スキーマの特定ルールに準拠する必要があります。table キーそれ自体の値はアレイとなっています。サブアレイは、データシートの行を表します。空白のセルは、空白のアレイ[]を使って特定することができます。セルのコンテンツは、サブアレイに列挙されたエレメントによって示されます。エレメントの順序は、データシートの列の順序に対応しています。空白のセルは、null エレメントを使って明記する必要があります。コンテンツのあるセルは、他のキー/値のペアを使って明記する必要があります。この場合、キーはデータタイプを表し、値はプレゼンテーションで表示される実際のデータを含みます。3種類のデータタイプに対応しています:
セルのコンテンツのフォーマット(日付など) は、PowerPoint テンプレートで行う必要があります。
名前が付いたテキスト フィールドの場合、要素 table は、1 つの「行」の 1 つの「セル」のいで構成されます。このため、以下のフラグメントのように、要素 data 内の名前が付いた各テキスト フィールドに対して 1 度のみ表示される JSON 配列を使用する必要があります。
JSON データ ファイルには.ppttcのファイル タイプが必要です。このファイルを開く場合:
その後、新しいプレゼンテーションが表示されます。そのコンテンツをさらに編集、保存したり、他の方法で使用したりすることができます。
コマンド ラインで JSON データからプレゼンテーションを作成することもできます。
ppttc input.json -o output.pptx
実行可能ファイル ppttc.com が think-cell のインストール フォルダーにあります。ppttc.com の呼び出しは、自動ワークフローに簡単に組み込むことができます。
.ppttc ファイルの JSON データは、ウェブサービスで遠隔から生成でき、ブラウザーでダウンロードできます。下のサンプル、およびthink-cell インストール ディレクトリのサブフォルダー ppttc のsample.htmlにあるサンプルを参照してください。
<!DOCTYPE html>
<html>
<body>
<h1>ppttc test</h1>
<button type="button" onclick="myFunction()">
Download .ppttc
</button>
<a id="downloader" style="display:none"/>
<script>
function myFunction() {
var obj = [
{
template : "https://static.think-cell.com/ppttc/template.pptx",
data: [
{
name: "Chart1",
table: [
[null, {string:"Alpha"},{string:"Bravo"},{string:"Charlie"}],
[],
[{string:"Delta"},{number:1},{number:2},{number:3}],
[{string:"Echo"},{number:4},{number:5},{number:6}]
]
},
{
name: "Chart2",
table: [
[null, {date:"2016-09-03"},{date:"2016-09-04"},{date:"2016-09-05"}],
[],
[{string:"Foxtrot"},{number:7},{number:8},{number:9}],
[{string:"Gulf"},{number:10},{number:11},{number:12}]
]
}
]
}
];
var elemDownloader = document.getElementById("downloader");
elemDownloader.setAttribute("href","data:application/vnd.think-cell.ppttc+json;charset=utf-8,"
+ encodeURIComponent(JSON.stringify(obj)));
elemDownloader.setAttribute("download", "sample.ppttc");
elemDownloader.click();
}
</script>
</body>
</html>
この例では、ダウンロードがリクエストされると、JSON データがオンザフライでコンパイルされます。サンプルでは静的データが組み込まれていますが、ウェブサイト上で提供されるパラメーターを使用する他のデータソースから JSON を動的に作成することができます。
.ppttc ファイルをダウンロードしたとき、そのファイルを保存するか、または他のダウンロード ファイルに対して同様に開くことができます。ファイルを開くと、「JSON データを使用してプレゼンテーションを作成する方法」で説明されている通り、新規プレゼンテーションを作成するために JSON データが使用されます。
think-cell グラフが含まれるテンプレート ファイルは、リモート サーバー経由でも送信することができます。この場合、上のリモートキーJSON で示されるとおり、template の値はローカルパスではなくURL となります。URL は、安全な接続のためにhttpをプロトコル、httpsとして指定し、または.ppttcファイルが開くシステム上有効なプロトコルを指定することができます。
遠隔テンプレートを参照する.ppttc ファイルを処理するとき、PowerPoint はテンプレート ファイルを取得します。そのため、.ppttc ファイルを開いた場合はリモート テンプレートに正しくアクセスする必要がります。
ウェブ サービスによって JSON データがリモートで生成され、テンプレートもリモートで保存された場合、生成された think-cell グラフが含まれる PowerPoint プレゼンテーションを動的に使用するには、ユーザーのマシンに標準の think-cell がインストールされている必要があります。
think-cell では、サーバーとしてJSON データの処理を実行できます。JSONデータをテンプレートにマージしてPowerPointプレゼンテーションを作成する場合は、リモート サーバーで行います。サーバーはJSONのフラグメントを入力として受け入れ、マージされたPowerPointプレゼンテーションを出力として届けます。どちらもHTTPで行われます。
think-cellサーバーを起動するには、インストール フォルダーでtcserver.exeを実行します。以下のダイアログが開きます。
サーバーを起動するには:
ウィンドウの最下部にある [ログ] フィールドに、サーバーが起動し、URLをリッスンしていると表示されます。また、あらゆるクライアントのリクエストとサーバーの反応が [ログ] フィールドに表示されます。
サーバーを停止して [削除] ボタンをクリックします。URLを変更するには、UrlPrefixフィールドに新しいURLを入力して [適用] をクリックします。
サーバーはMIMEタイプapplication/vnd.think-cell.ppttc+jsonのHTTP POSTリクエストとしてJSONデータを受け入れ、PowerPointファイルで応答します。
サーバーを使用して起動するには、UrlPrefixフィールドからURLをコピーしてブラウザーで開きます。サンプル ページが開きます。サーバーは自己文書化しています。サンプル ページのHTMLソース コードは、その使用と詳細な例を示しています。この例には以下の要素が含まれています。
HTTP POST リクエストを生成し、サーバーの反応を PowerPoint ファイルとして保存する他の方法も使用できます。使用中、この目的でのJavaScriptの使用は制限されていません。