• Как отредактировать скрипт, чтобы он подставлял данные из Таблицы в Документ?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Предлагаю использовать универсальную функцию заполнения документа

    /**
     *
     * @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...
    Ответ написан
    Комментировать