GASでGoogleスプレッドシートをPDF化する方法(その1)

スプレッドシートをPDFに変換する作業、毎回手動で行っていませんか?GASを使えば、スプレッドシートのPDF化を自動化することができ、業務効率が大幅にアップします。巷にもGASをPDFで出力する方法については溢れていますが、今回は最もよく使われるUrlFetchAppとexportFormatを使った方法を説明します。いずれ、違う方法も紹介します!


目的

Googleスプレッドシートの特定のシートを、GASを使ってPDF形式で保存し、メールで自動送信する方法を解説します。これにより、レポートや請求書などを毎回手動で作成する必要がなくなります。


準備

  1. Googleスプレッドシート:PDF化したいスプレッドシートを用意。
  2. GASエディタ:スプレッドシートを開き、拡張機能 > Apps Script からエディタを開きます。

コードの説明

以下が、スプレッドシートをPDFに変換し、指定されたメールアドレスに送信するコードです。

function exportSheetAsPDF() {
  // スプレッドシートとシートのIDを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("Sheet1"); // PDF化したいシート名を指定

  // ファイルのプロパティを設定
  const sheetId = sheet.getSheetId();
  const url = ss.getUrl().replace(/edit$/, '') + 'export?';

  // PDF化オプション設定
  const params = {
    exportFormat: 'pdf', // PDF形式に変換
    format: 'pdf',
    size: 'A4',          // ページサイズ
    portrait: 'true',    // 縦向き
    fitw: 'true',        // 幅に合わせて縮小
    sheetnames: 'false', // シート名を表示しない
    printtitle: 'false', // タイトルを印刷しない
    pagenumbers: 'false',// ページ番号を表示しない
    gridlines: 'false',  // グリッドラインを非表示
    fzr: 'false',        // 固定行を表示しない
    gid: sheetId         // 特定のシートIDを指定
  };

  const queryString = Object.keys(params).map(function(key) {
    return key + '=' + params[key];
  }).join('&');

  const token = ScriptApp.getOAuthToken();
  const response = UrlFetchApp.fetch(url + queryString, {
    headers: {
      'Authorization': 'Bearer ' + token
    }
  });

  const pdfBlob = response.getBlob().setName(ss.getName() + '.pdf');
  
  // メールを送信(必要な場合)
  MailApp.sendEmail({
    to: "recipient@example.com",  // 送信先メールアドレス
    subject: "PDFファイル",
    body: "PDFファイルを送信します。",
    attachments: [pdfBlob]
  });
  
  Logger.log("PDFを生成してメール送信しました。");
}

コードのポイント

  1. SpreadsheetApp.getActiveSpreadsheet() で現在のスプレッドシートを取得し、指定のシートを取得します。
  2. UrlFetchApp.fetch() を使って、Google APIを呼び出し、スプレッドシートをPDFとして取得します。
  3. MailApp.sendEmail() で、生成したPDFを指定のメールアドレスに送信することができます。

カスタマイズのヒント

  • ページサイズや向きの変更sizeportraitを変更すれば、A4以外のサイズや横向きPDFを生成可能です。
  • 自動化のトリガー設定:GASの「トリガー」を使うことで、定期的にPDFを生成し、自動的に送信することもできます。たとえば、月末にレポートを自動生成して、PDFをメールで送ることも可能です。

まとめ

今回紹介したGASスクリプトを使えば、GoogleスプレッドシートのPDF化とメール送信を自動化できます。業務の効率化に役立つので、ぜひお試しください!

今後も役立つTIPSをどんどん公開していきますので、お楽しみに!


次回の予告
次回は、GASを使ったGoogleドキュメントの自動生成に挑戦します。お楽しみに!

コメント

このブログの人気の投稿

桃太郎電鉄ワールド、初の大型アップデート。その名も『ムー大陸浮上!』

GASのさらに高度なテクニック:非同期処理、プロパティサービス、Webhookチェーン

GASでスクレイピング 〜天才ア○バ様の教え〜