こんにちは!
タダケン(@tadaken3)です。
今回はGoogle Apps Scriptを使って、スプレッドシートに作成されたグラフを画像として、Googleドライブに保存する方法をお伝えいたします。
作成したグラフを保存しておくと、あとでスライド資料を作る際に便利です。とくにグラフが大量にある場合には効果的です。
スプレッドシートにあるグラフを取得する
今回はスプレッドシートにすでにグラフが作成されている状態からスタートします。
こんな感じで折れ線グラフが作成されているとします。
シートに存在しているグラフを取得するにはgetChartsメソッドを使います。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メソッドについてはこちらの記事で解説していますので、こちらもご覧になってみてください。
Googleドライブに保存する
フォルダを取得する
Google Apps ScriptでGoogleドライブのフォルダを取得する場合は、DriveAppのgetFolderByIdメソッドを使います。
これでフォルダをオブジェクトとして取得することができます。
IDをどのように知るかと言うと、フォルダであればGoogleドライブでそのフォルダを開いている際のURLの
の部分です。
Googleドライブでフォルダを操作する方法については以下の記事もご参考にしてみてくださいね。
フォルダにファイルを作成する
フォルダにファイルを追加するには、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のテクニックを紹介します。- Google Apps Scriptでグラフを作成する方法の最初の一歩
- 【グラフで説得力をあげる】Google Apps Scriptでグラフの種類を変更する方法
- 【複数の要素もひと目で分かる】Google Apps Scriptで積み上げ棒グラフを作成する方法
- 【意図を明確に】Google Apps ScriptのsetOptionメソッドでグラフタイトル・凡例を編集する方法
- Google Apps ScriptのsetColorsメソッドでグラフの色を設定する方法
- 【GAS】レポート共有も効率よく!作成したグラフをGmailで送る方法
- 【GAS】スプレッドシートをPDFにしてGmailで送付する方法