正確には、Googleスプレッドシートの最後の列の情報をGoogleドキュメントに差し込み、pdf形式で所定のディレクトリ(Googleドライブ)に格納。
addFileがいつの間にか廃止され使用できなくなっていたため、意図した動作にならず作り直す羽目に・・・。
差し込み用のGoogleドキュメントはこんな感じ。
氏名 :◆◆name◆◆ 氏名(かな) :◆◆kana◆◆ 氏名(ローマ字):◆◆roma◆◆ 生年月日 :◆◆birthday◆◆
改修したGASがこれ。試行錯誤の末、なんとか意図した動作になった。
function generateDocument() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("シート名");
var lastRow = sheet.getLastRow();
var dataRange = sheet.getRange(lastRow, 1, 1, sheet.getLastColumn());
var data = dataRange.getValues()[0];
// テンプレートドキュメントを開く
var templateDocId = "テンプレートドキュメント(Googleドキュメント)のファイルID";
var templateDoc = DocumentApp.openById(templateDocId);
// テンプレートの内容を取得
var templateBody = templateDoc.getBody();
var templateText = templateBody.getText();
// データの差し込み処理
var name = data[1];
var kana = data[2];
var roma = data[3];
var birthday = data[4];
// テンプレートの差し込み処理
var replacedText = templateText.replace(/◆◆name◆◆/g, name);
replacedText = replacedText.replace(/◆◆kana◆◆/g, kana);
replacedText = replacedText.replace(/◆◆roma◆◆/g,roma);
replacedText = replacedText.replace(/◆◆birthday◆◆/g,birthday);
// 新しいドキュメントを作成
var newDoc = DocumentApp.create("【お問い合わせ】" + name); //お問い合わせ 名前がファイル名となる。
var newBody = newDoc.getBody();
newBody.setText(replacedText);
newDoc.saveAndClose();
// ドキュメントを指定したディレクトリに保存
var saveDirId = "保存先のGoogleドライブのディレクトリID";
var saveDir = DriveApp.getFolderById(saveDirId);
var newDocFile = DriveApp.getFileById(newDoc.getId());
saveDir.createFile(newDocFile.getAs(MimeType.PDF));
};
ファイル保存の方法として備忘録として残しておきましょうかね・・・。