GASでGoogleスプレッドシートをPDF化する方法(その1)
スプレッドシートをPDFに変換する作業、毎回手動で行っていませんか?GASを使えば、スプレッドシートのPDF化を自動化することができ、業務効率が大幅にアップします。巷にもGASをPDFで出力する方法については溢れていますが、今回は最もよく使われるUrlFetchAppとex
portFormat
を使った方法を説明します。いずれ、違う方法も紹介します!
目的
Googleスプレッドシートの特定のシートを、GASを使ってPDF形式で保存し、メールで自動送信する方法を解説します。これにより、レポートや請求書などを毎回手動で作成する必要がなくなります。
準備
- Googleスプレッドシート:PDF化したいスプレッドシートを用意。
-
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を生成してメール送信しました。");
}
コードのポイント
-
SpreadsheetApp.getActiveSpreadsheet()
で現在のスプレッドシートを取得し、指定のシートを取得します。 -
UrlFetchApp.fetch()
を使って、Google APIを呼び出し、スプレッドシートをPDFとして取得します。 -
MailApp.sendEmail()
で、生成したPDFを指定のメールアドレスに送信することができます。
カスタマイズのヒント
-
ページサイズや向きの変更:
size
やportrait
を変更すれば、A4以外のサイズや横向きPDFを生成可能です。 - 自動化のトリガー設定:GASの「トリガー」を使うことで、定期的にPDFを生成し、自動的に送信することもできます。たとえば、月末にレポートを自動生成して、PDFをメールで送ることも可能です。
まとめ
今回紹介したGASスクリプトを使えば、GoogleスプレッドシートのPDF化とメール送信を自動化できます。業務の効率化に役立つので、ぜひお試しください!
今後も役立つTIPSをどんどん公開していきますので、お楽しみに!
次回の予告
次回は、GASを使ったGoogleドキュメントの自動生成に挑戦します。お楽しみに!
コメント
コメントを投稿