Предлагаю использовать универсальную функцию заполнения документа
/**
*
* @param {GoogleAppsScript.Document.Document} doc
* @param {Record<string,unknown>} data
*/
function fillDoc_(doc, data) {
const body = doc.getBody();
Object.entries(data).forEach(([key, value]) => {
body.replaceText(`(?i){{${key}}}`, value);
});
body.replaceText(`(?i){{.*?}}`, '');
}
Теперь вы можете поставить в эту функцию Документ, например, вот так создается новый файл из шаблона
const file = DriveApp.getFileById('192avJeIyh524ofvFvuQRaf9QPyqH7FKBEzwNLoHJa-g').makeCopy();
const doc = DocumentApp.openById(file.getId());
Важно, заменяемый текст в шаблоне должен быть обернут в {{заменяемый текст}}
.
Так же нужно создать объект данных для функции. Например, вот так
const values = SpreadsheetApp.getActive()
.getRange("'Заполнение Документа данными из Таблицы'!2:2")
.getDisplayValues()[0];
const data = {
заголовок: 'тестовый заголовок',
имя: values[1],
};
Вызов функции прост
fillDoc_(doc, data);
Полный пример шаблона тут
https://docs.google.com/document/d/192avJeIyh524of...
Полный пример в Таблице
https://docs.google.com/spreadsheets/d/1zPuzdN7EtT...