
みなさん、こんにちは!
タダケン(@tadaken3)です。
前回は、作成したグラフを画像として、Gmailで送付する方法をお伝えしました。
429 Too Many Requests
今回は、そこから一歩進んで、スプレッドシート全体を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で送付する方法

