前提・実現したいこと
GASでデータベースの内容を元に、ひな形に差込して作成したdocumentを
メールに添付して送信するスクリプトを作成しました
documentの作成、メール送信まではうまくいきましたが
添付されるpdfファイルに問題があります
発生している問題・エラーメッセージ
添付ファイルが当初ひな型をコピーして作成した差込前のdocumentのままPDFになり 差込後のdocumentが添付されません コピーを作成したフォルダには、差込が完了したdocumentが保存され 添付ファイルの名前は、新たに作成したファイルの名前になっています PDFになることは意図していることです
該当のソースコード
GAS
1function mailC() { 2 var SS = SpreadsheetApp.getActiveSpreadsheet();//データベースのスプレッドシート:list,work,table の3つのシートで構成 3 var S = SS.getSheetByName('list'); 4 5 var ui = SpreadsheetApp.getUi(); 6 var res = ui.prompt( 7 '☑した雇用契約書を作成、メール送信します', 8 '所属コード5桁を入力してください', 9 ui.ButtonSet.OK_CANCEL 10 ); 11 var CD = res.getResponseText(); 12 13//作業用シートに印刷する店舗のコードを渡す 14 var wsheet = SS.getSheetByName('work'); 15 wsheet.getRange('A1').setValue(CD); 16 var values = wsheet.getDataRange().getValues(); //印刷データを配列で取得 17 18//該当店舗のフォルダIDを取得 19 var tableS = SS.getSheetByName('table'); 20 var table = tableS.getDataRange().getValues(); 21 var cdtable = []; //所属コードの配列を作る 22 for (let i=1; i<table.length; i++){ 23 cdtable.push(table[i][2]); 24 } 25 var row = cdtable.indexOf(CD*1); //所属コードの列番号を取得 26 27 var destination = table[row+1][3]; //該当店舗のフォルダID 28 var template = DriveApp.getFileById('*************'); //契約書ひな形 29 30// 契約書をコピーして店舗のフォルダに格納し、データを差込して保存 31 for (let i=1; i<values.length; i++){ 32 var name = Utilities.formatDate(new Date(), "JST", "yyyy-MM-dd-HHmm") +'_'+values[i][2]; 33 var cont = template.makeCopy(name, DriveApp.getFolderById(destination)); // 契約書をコピーしてフォルダに格納 34 var id_contdoc = cont.getId(); 35 var contdoc = DocumentApp.openById(id_contdoc); 36 var body = contdoc.getBody(); 37 38 body 39 .replaceText('{店舗名}',values[i][1]) 40 .replaceText('{氏名}',values[i][2]) 41 42//作成したファイルを添付してメール送信 43 var file = contdoc.getBlob(); //作成したファイルを取得 44 var body1 = ''; 45 body1 += values[i][2] + '様\n\n'; 46 body1 += 'おつかれさまです。\n'; 47 48 GmailApp.sendEmail( 49 values[i][25], '件名', body1, 50 { 51 attachments: file 52 } 53 ); 54} 55}
試したこと
1.//作成したファイルを添付してメール送信
var file = contdoc.getBlob(); //作成したファイルを取得
最初は、var file = DriveApp.getFileById(id_contdoc);としていましたが
これも同じ結果でした
2.以下の記事を参考に、差込部分を別な関数にして戻り値をBlobにしてみましたが
結果は同じでした
https://note.com/nepia_infinity/n/n829ed89a187a
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー