Googleスプレッドシートの情報をpdfにして所定のディレクトリ(Googleドライブ)に格納する。

電脳備忘録

正確には、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));
};

ファイル保存の方法として備忘録として残しておきましょうかね・・・。

広告

ブログの維持費に充てるでございます・・・。