みなさん、こんにちは!
タダケン(@tadaken3)です。
前回は、作成したグラフを画像として、Gmailで送付する方法をお伝えしました。
【GAS】レポート共有も効率よく!作成したグラフをGmailで送る方法
Google Apps Scriptを使って、作成したグラフをメールで送付するテクニックを紹介します。グラフ作成から、メールでの共有まで、自動化することができるようになります。
今回は、そこから一歩進んで、スプレッドシート全体をPDFにして、Gmailで送付する方法をお伝えします。
前回のおさらい
前回のコードは確認しましょう。
前回はChartオブジェクトに対して、getBlobメソッドで、グラフの画像を取得しましたね。
そして、GmaillAppのsendEmailメソッドで画像を送信しています。
function createChart() { var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1"); var range = mySheet.getRange("A1:C6"); var chart = mySheet.newChart() .addRange(range) .setPosition(1,5,0,0) .asColumnChart() .setOption('title', '野菜の産地別販売数') .setOption('titleTextStyle' ,{color: '#545454', fontSize: 20}) .setOption('legend', {position: 'top', textStyle: {color: '#545454', fontSize: 16}}) .setColors(["darkgreen", "darkgray"]) .build(); mySheet.insertChart(chart); //グラフの画像を取得 var imageBlob = chart.getBlob().getAs('image/png').setName("chart_image.png"); //GMailAppにsendEmailメソッドを実行してメールを送信する GmailApp.sendEmail( 'itsumo-torari-it@gmail.com',//宛先です。※架空のメールアドレスです '野菜のレポート',//件名です。 '添付ファイルをご確認下さい', //本文になります。 {attachments: [imageBlob]} ); }
getAsメソッドでPDFを取得する
メールに添付する場合、スプレッドシートをPDFとして取得する必要があります。
getAsメソッドを使いスプレッドシートをPDFとして取得します。
書き方は
スプレッドシートオブジェクト.getAs(‘application/pdf’).setName(ファイルの名前);
です。
getASメソッドで、「application/pdf」を指定して、PDFとして取得します。
setNameメソッドではファイル名を設定します。
スプレッドシートは、PDFしかサポートされていない点はご注意ください。
function createChart() { var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1"); var range = mySheet.getRange("A1:C6"); var chart = mySheet.newChart() .addRange(range) .setPosition(1,5,0,0) .asColumnChart() .setOption('title', '野菜の産地別販売数') .setOption('titleTextStyle' ,{color: '#545454', fontSize: 20}) .setOption('legend', {position: 'top', textStyle: {color: '#545454', fontSize: 16}}) .setColors(["darkgreen", "darkgray"]) .build(); mySheet.insertChart(chart); var imageBlob = chart.getBlob().getAs('image/png').setName("chart_image.png"); //スプレッドシートをPDFとして取得 var pdf = SpreadsheetApp.getActiveSpreadsheet().getAs('application/pdf').setName("report.pdf"); //GMailAppにsendEmailメソッドを実行してメールを送信する GmailApp.sendEmail( 'itsumo-torari-it@gmail.com', '野菜のレポート',//件名です。 '添付ファイルをご確認下さい', {attachments: [imageBlob, pdf]} //添付ファイルとしてPDFを追加します ); }
シート単体ではなく、スプレッドシートに対して、getAsメソッドをする点にご注意ください。これでレポートをPDFとしてメールで送ることができました。
実際には、このような形で送付されます。
まとめ
今回は、getAsメソッドを使って、スプレッドシートをPDFで取得する方法をお伝えしました。
これでリッチなレポートを作成して、自動で共有できるようになりましたね。
次回も、グラフについてのテクニックを、お伝えしてきますね。
どうぞ、お楽しみに!
よろしければ、こちらから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で送付する方法