【GAS】スプレッドシートをPDFにしてGmailで送付する方法


みなさん、こんにちは!
タダケン(@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のテクニックを紹介します。
  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をコピーしました