[この記事は Wesley Chun (@wescpy )、G Suite デベロッパー アドボケートによる G Suite Developers Blog の記事 "Generating slides from spreadsheet data " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]
先日、G Suite チームは Google Slides API を初めて発表 し、新たな可能性を打ち出しました。たとえば、スプレッドシートやデータベース内に すでに存在する データを 元に プログラムでプレゼンテーションやスライド コンテンツを生成できるようになります。この API のどこがすばらしいのかというと、プレゼンテーションにおけるメリットの 1 つは、データベースやスプレッドシートのデータを取り出して、視覚的にわかりやすいスライドを作成できることです。そのようなデータを反映した情報を、経営陣や潜在顧客に伝えたい場合に便利です。
本日ご紹介する DevByte 動画では、Sheets API と Slides API の両方を使った簡単なアプリケーションで、各 API の使い方を説明しています。サンプルアプリでは、まず Sheets API を使って、必要なすべてのデータをスプレッドシートから読み込んでいます。次に、Slides API で新しいスライドを作成し、そのスライドにスプレッドシートのデータを 設定 しています。
スライドは、API リクエストを送信して操作できます。Google Sheets API と同じく、リクエストは JSON ペイロード形式で送信します。次に示すのは、スライドに表を作り、スプレッドシートからグラフをインポートする擬似 JavaScript コードです。リクエストを行う際は、このような配列を作成します。
var requests = [
{"createTable": {
"elementProperties":
{"pageObjectId": slideID },
"rows":8,
"columns":4
}},
{"createSheetsChart": {
"spreadsheetId": sheetID ,
"chartId": chartID ,
"linkingMode":"LINKED",
"elementProperties": {
"pageObjectId": slideID ,
"size": {
"height": { ... },
"width": { ... }
},
"transform": { ... }
}
}}
];
少なくとも 1 つのリクエストを格納した変数(ここでは、上の例に合わせてrequests とします)があり、その中にスプレッドシートのsheetID と chartID 、さらにプレゼンテーション ページのslideID が含まれているものとします。これを API に渡し、presentations().batchUpdate() コマンドを 1 回呼び出します。この処理は、API のサービス エンドポイントが SLIDES である場合、Python で次のように書くことができます。
SLIDES .presentations().batchUpdate(presentationId= slideID ,
body= requests ).execute()
表の作成はとても単純です。グラフの作成では、魔法のような機能を使うことができます。その 1 つが、linkingMode です。これに「LINKED」という値を設定しておくと、スプレッドシートのデータが変更された際に(スプレッドシート内のグラフが変わる場合)プレゼンテーションのスライドでもグラフが更新され、最新のイメージが表示されます。この更新は、API またはスライドのユーザー インターフェースによって行われます。linkingMode の値に「NOT_LINKED_IMAGE」を選択すると、データに応じて変更されることのない、旧来の静的なイメージになります。この機能の詳細については、グラフの作成に関するドキュメント や、両方の値を使った API リクエストの動作を紹介した動画をご覧ください。
動画で取り上げたコードサンプルの 全容 については、さらに詳しく取り上げている投稿 をご覧ください。両方の API を駆使したアプリの登場を楽しみにしています。
Posted by Eiji Kitamura - Developer Relations Team