GASでPDF帳票をメール添付
GAS実践でPDF生成を自動化
Google Apps Script(GAS)を使えば、スプレッドシートやドキュメントから簡単にPDFを生成できます。まずは SpreadsheetApp.getActiveSpreadsheet() で対象のスプレッドシートを取得し、SpreadsheetApp.flush() で変更を確定させます。次に、SpreadsheetApp.getActiveSpreadsheet().getAs('application/pdf') で PDF 形式の Blob を取得し、Blob.getDataAsString() で内容を確認できます。これにより、定期的にレポートを PDF 化し、ユーザーに配布する仕組みを構築できます。
getAsとapplication/pdfでPDF変換
PDF変換の核心は getAs メソッドです。例えば、Google ドキュメントを PDF に変換する場合は、DocumentApp.openById(docId).getAs('application/pdf') を呼び出します。返却される Blob は MIME タイプが application/pdf であるため、DriveApp.createFile(blob) で直接 Drive に保存できます。以下のコードは、ドキュメントを PDF に変換し、メール添付として送信するサンプルです。
function sendPdf() {
var docId = 'xxxxxxxxxxxxxxxxxxxxxxxx';
var blob = DocumentApp.openById(docId).getAs('application/pdf');
var file = DriveApp.createFile(blob);
MailApp.sendEmail({
to: 'example@example.com',
subject: 'PDFレポート',
body: '添付ファイルをご確認ください。',
attachments: [blob]
});
}
帳票出力:請求書・レポート作成
帳票出力はビジネスで頻繁に行われるタスクです。GAS で請求書を自動生成するには、スプレッドシートに顧客情報と商品リストを保持し、テンプレートドキュメントにデータを挿入します。以下の手順で実装できます。
- スプレッドシートから顧客情報を取得。
- DocumentApp.openById(templateId) でテンプレートを開く。
- body.replaceText('{{name}}', customerName) でプレースホルダーを置換。
- getAs('application/pdf') で PDF を生成。
- DriveApp.createFile(blob) で保存し、MailApp.sendEmail でメール添付。
このプロセスをループさせることで、複数の請求書を一括で作成・送信できます。
ドライブ保存とメール添付のワークフロー
PDF 生成後のドライブ保存とメール添付は、ビジネスプロセスをスムーズにします。以下のサンプルでは、生成した PDF を指定フォルダに保存し、同時にメール添付します。
function saveAndSend() {
var folder = DriveApp.getFolderById('folderId');
var blob = SpreadsheetApp.getActiveSpreadsheet().getAs('application/pdf');
var file = folder.createFile(blob);
MailApp.sendEmail({
to: 'client@example.com',
subject: 'レポート送付',
body: '添付ファイルをご確認ください。',
attachments: [blob]
});
}
このスクリプトをトリガーに設定すれば、毎日自動でレポートを生成し、ドライブに保存し、関係者へメール添付で配布できます。
コメント
コメントを投稿