Google Apps ScriptでスプレッドシートのグラフをGoogleドライブに保存する

こんにちは!
タダケン(@tadaken3)です。

今回はGoogle Apps Scriptを使って、スプレッドシートに作成されたグラフを画像として、Googleドライブに保存する方法をお伝えいたします。

作成したグラフを保存しておくと、あとでスライド資料を作る際に便利です。とくにグラフが大量にある場合には効果的です。

スポンサーリンク

スプレッドシートにあるグラフを取得する

今回はスプレッドシートにすでにグラフが作成されている状態からスタートします。
こんな感じで折れ線グラフが作成されているとします。

シートに存在しているグラフを取得するにはgetChartsメソッドを使います。getChartsメソッドを使うと、すべてのグラフを配列として取得できます。

書き方は

sheetオブジェクト.getCharts()

です。

実際のコードはこのようになります。

function main() {
  //シート名をして指定してシートを取得します。今回の場合は「graph」シート
  var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("graph");
  
  //getChartsメソッドでシート内のチャートを取得します。配列で取得されます。
  var charts  = mySheet.getCharts();
  
  //charts配列に格納されたデータから0番目のグラフを画像として取得
  var imageBlob = charts[0].getBlob().getAs('image/png').setName("chart_image.png");
}

上記のサンプルコードでは、getChartsメソッドでチャート取得した後にgetBlobメソッドを使って、グラフを画像として取得しています。

getBlobメソッドについてはこちらの記事で解説していますので、こちらもご覧になってみてください。

【GAS】レポート共有も効率よく!作成したグラフをGmailで送る方法
Google Apps Scriptを使って、作成したグラフをメールで送付するテクニックを紹介します。グラフ作成から、メールでの共有まで、自動化することができるようになります。

Googleドライブに保存する

フォルダを取得する

Google Apps ScriptでGoogleドライブのフォルダを取得する場合は、DriveAppのgetFolderByIdメソッドを使います。

DriveApp.getFolderById(フォルダID)

これでフォルダをオブジェクトとして取得することができます。

IDをどのように知るかと言うと、フォルダであればGoogleドライブでそのフォルダを開いている際のURLの

https://drive.google.com/drive/folders/{フォルダID}

の部分です。

Googleドライブでフォルダを操作する方法については以下の記事もご参考にしてみてくださいね。

Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプト
Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプトとしてGoogleドライブのフォルダとファイルをIDで取得してログ出力するスクリプトついてお伝えします。

フォルダにファイルを作成する

フォルダにファイルを追加するには、createFileメソッドを使います。

このように書きます。

folderオブジェクト.createFile(作成するファイル)

先程シートから取得したグラフ画像をcreateFileメソッドに渡してあげればオッケーです。

function main() {
  //シート名をして指定してシートを取得します。今回の場合は「graph」シート
  var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("graph");
  
  //getChartsメソッドでシート内のチャートを取得します。配列で取得されます。
  var charts  = mySheet.getCharts();
  
  //charts配列に格納されたデータから0番目のグラフを画像として取得
  var imageBlob = charts[0].getBlob().getAs('image/png').setName("chart_image.png");
  
  //フォルダIDを指定して、フォルダを取得
  var folder = DriveApp.getFolderById('フォルダID');
  
  //フォルダにcreateFileメソッドを実行して、ファイルを作成
  folder.createFile(imageBlob);
}

スクリプトを実行して、グラフ画像がGoogleドライブに保存されたら成功です。

まとめ

今回は

  • getChartsメソッドを使って、スプレッドシートからグラフを取得する方法
  • createFileメソッドで、Googleドライブにファイルを作成する方法

をお伝えしました。グラフを大量に保存したい場合や、グラフ作成を自動化していてグラフの保存も自動化したい場合に活用できるテクニックです。

次回もGoogle Apps Scriptのテクニックをご紹介していきすね。

Twiiterで仕事効率化やプログラミングに関する情報を発信しています。「いつも隣にITのお仕事」の裏話をお伝えしたり、読者の方と交流したりしています。

Twitterアカウントをフォローしてもらえると更新の励みになります。

連載目次:GASでデータ分析!グラフを作成してデータの可視化

スプレッドシートを使う業務の中で多いのがデータの集計・分析作業です。データからインサイトを引き出すコツは「可視化」してデータを見えるようにすること。このシリーズではGoogleスプレッドシートでの集計・分析作業の効率を上げるための、Google Apps Scriptのテクニックを紹介します。
  1. Google Apps Scriptでグラフを作成する方法の最初の一歩
  2. 【グラフで説得力をあげる】Google Apps Scriptでグラフの種類を変更する方法
  3. 【複数の要素もひと目で分かる】Google Apps Scriptで積み上げ棒グラフを作成する方法
  4. 【意図を明確に】Google Apps ScriptのsetOptionメソッドでグラフタイトル・凡例を編集する方法
  5. Google Apps ScriptのsetColorsメソッドでグラフの色を設定する方法
  6. 【GAS】レポート共有も効率よく!作成したグラフをGmailで送る方法
  7. 【GAS】スプレッドシートをPDFにしてGmailで送付する方法
タイトルとURLをコピーしました