23. JSON データによる自動化

JSON のデータを使用して、当初テンプレートとして作成されたグラフをコピーし、そのグラフ用にデータシートを新たに用意できます。新しいプレゼンテーションを構築するために用いられる特定のテンプレートを制御することができます。テンプレートは何度も使用できます。

必要に応じて、グラフのライブラリとさまざまなデコレーションが可能なバージョンを作成することができます。その後、これらのテンプレートを任意に結合して、新しいプレゼンテーション用に使用するデータをそれらのテンプレートに入れることができます。

PowerPoint テンプレートとJSON データは、ローカルでもリモートでも保存できます。JSON データは、ウェブサービスによってオンザフライで生成することができます。

23.1
think-cell 用JSONデータの構造
23.2
プレゼンテーション作成にJSON データの使用
23.3
JSON データの遠隔送信
23.4
テンプレートの遠隔送信

23.1 think-cell 用JSONデータの構造

下記に示されるthink-cell 用JSONデータのサンプルは、think-cell インストール ディレクトリのサブフォルダー ppttc のファイル sample.ppttc にあります。JSON では、テンプレートの連結から作成されるプレゼンテーションが特定されています。ppttc/ppttc-schema.jsonでのスキーマに準拠しています。

think-cell オートメーション用のJSON のサンプルファイル

ルート レベルには配列されたアイテムがあります。どのアイテムにも、そのグラフ用の特定されたテンプレート ファイルとデータがあります。多種多様なテンプレートは連結することができ、単一のテンプレートは複数回使用できます。簡単にできる例として、単一のテンプレートでも1回の使用でデータ付きテンプレートに含まれるグラフ全体に適用されます。

配列された連結テンプレートの各アイテムには、2つのキーが含まれています:image テンプレート および image データ. image  テンプレートの値は、think-cell グラフ付きのPowerPoint ファイルへのパスとなります。この場合、think-cell の名称は識別子として設定されています (自動化する方法を参照)。テンプレート ファイルは、テンプレートの遠隔送信にあるように遠隔地からでも取得することができます。

キーimage データの値は、テンプレートにあるグラフのJSON フォーマットのデータ表リストです。リストの各アイテムには2つのプロパティがあります: image  名称image です。 image 名称 では、その名称を使用するグラフが特定されており、image  にはデータ表があります。

image の値の構造は、シリーズを表す行とカテゴリを表す列を持つ 非変換のデータシートに直接対応しています。既定のグラフで行の順序は以下のとおりです:

1.
まず、空白セルのある行 (null)、次にカテゴリ名称のあるセル。
2.
100% の行= 値 100%ではない場合= 値は使用され、空白の行はimage []として特定されます。
3.
シリーズ名称を含む最初のセル、および数値のある次のセルを有する複数の行。

名称が付けられるグラフはすべて、JSON で参照することができます。特定のデータシートのレイアウトの場合は、個別のチャプターを確認するか、参照用のグラフ内部データシートを開きます。

注記: think-cell データシート範囲内のセルはすべて、あらゆる種類のテキストに対応しています。必要な場合、最初の行の最初のセルはフィルすることもできます。

tableキーの値を構成するデータは、スキーマの特定ルールに準拠する必要があります。table キーそれ自体の値はアレイとなっています。サブアレイは、データシートの行を表します。空白のセルは、空白のアレイ[]を使って特定することができます。セルのコンテンツは、サブアレイに列挙されたエレメントによって示されます。エレメントの順序は、データシートの列の順序に対応しています。空白のセルは、null エレメントを使って明記する必要があります。コンテンツのあるセルは、他のキー/値のペアを使って明記する必要があります。この場合、キーはデータタイプを表し、値はプレゼンテーションで表示される実際のデータを含みます。3種類のデータタイプに対応しています:

  • 全種類のテキストのimage ストリング。印刷可能のユニコード (UTF-8) の文字すべてに対応しています。例:{”string”:”Echo”}
  • 全種類の数字のimage 。小数点は点になります。例:{”number”:”5”}
  • 日付のimage 。必要なフォーマットはYYYY-MM-DDです。例:{”date”:”2016-09-04”}

セルのコンテンツのフォーマット(日付など) は、PowerPoint テンプレートで行う必要があります。

23.2 プレゼンテーション作成にJSON データの使用

JSON データ ファイルには.ppttcのファイル タイプが必要です。このファイルを開く場合:

1.
think-cell はファイルを読み込み、その構造上の整合性をチェックします。
2.
新しいプレゼンテーションが作成されます。JSON ファイルのトップ レベルの各アイテムのために、新しいプレゼンテーションには指定されたテンプレートのコピーが含まれています。
3.
テンプレートのコピーでは、name 値で特定されたグラフのデータシートがtable値のデータと交換されます。すべてのラベル、ラベル配置、差異矢印の値、その他のグラフ デコレーションは更新されます。

その後、新しいプレゼンテーションが表示されます。そのコンテンツをさらに編集、保存したり、他の方法で使用したりすることができます。

23.3 JSON データの遠隔送信

.ppttc ファイルの JSON データは、ウェブサービスで遠隔から生成でき、ブラウザーでダウンロードできます。下のサンプル、およびthink-cell インストール ディレクトリのサブフォルダー ppttcsample.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>

Figure 23..1: リモートJSON のサンプル

このサンプルの場合、ダウンロードがリクエストされたとき、JSON データはオンザフライで編集されています。サンプルでは静的データが組み込まれていますが、ウェブサイト上で提供されるパラメーターを使用する他のデータソースから JSON を動的に作成することができます。

.ppttc ファイルをダウンロードしたとき、そのファイルを保存するか、または他のダウンロード ファイルに対して同様に開くことができます。ファイルを開き、JSON データを使用してプレゼンテーション作成にJSON データの使用で示される新しいプレゼンテーションを作成します。

23.4 テンプレートの遠隔送信

think-cell グラフが含まれるテンプレート ファイルは、リモート サーバー経由でも送信することができます。この場合、上のリモートキーJSON で示されるとおり、template の値はローカルパスではなくURL となります。URL は、安全な接続のためにhttpをプロトコル、httpsとして指定し、または.ppttcファイルが開くシステム上有効なプロトコルを指定することができます。

遠隔テンプレートを参照する.ppttc ファイルを処理するとき、PowerPoint はテンプレート ファイルを取得します。そのため、.ppttc ファイルを開いた場合はリモート テンプレートに正しくアクセスする必要がります。

ウェブサービスによってJSON データが遠隔で生成され、テンプレートも遠隔で保存された場合、生成されたthink-cell グラフ付きのPowerPoint プレゼンテーションを動的に使うには、ユーザー機器に標準のthink-cell がインストールされている必要があります。