How to automatically insert data into Google Docs using Apps Script (RU)
ฝัง
- เผยแพร่เมื่อ 22 ก.ค. 2019
- How to automatically insert data into Google Docs using Apps Script (RU)
The video explains how to create a Google Doc from a template and fill this template with data from a spreadsheet.
You can get the script code from here:
it4each.com/en/blog/kak-avtom...
Качественно, и главное доходчиво. Респект
Спасибо огромное!
Замечательное видео. Очень нужная вещь. Для того, кто занимается созданием большого количества документов из темплейтов вообще обязательное для просмотра. Хотя, гипотетически можно частично решить используя документы в гугл шитс
Спасибо!
Большое спасибо за видео!
И Вам спасибо!
Добрый день!)
Шикарное видео! Всё понятно.
Можете ли подсказать как можно сделать подставление текста без галочек как у вас, просто из определённой строки?
Например, формулами вывожу нужный текст в ячейки в определённой строке, например в 10-той строке гугл таблицы.
И чтобы при нажатии на кнопку скрипта переносило нужный текст в гугл документ.
Но есть ещё условие.
Нужно ещё создать несколько скриптов, чтобы при нажатии на кнопку со втором скриптом, подтягивало текст например из 11-ой строки и т.д.
Здравствуйте! Спасибо!
Выбрать текст из конкретной строки ещё проще - вместо блока, где ищется строка по *true* в чекбоксе, просто указываете номер этой строки.
Очень хочу из таблицы по кнопке заполнять и создавать договор в формате Docs. Друзья, не пойму, что может не нравится ? Почему дизлайки. Тема интересная, но пока смотрел ничего не понял. Автор, скажите, с чего мне начать чтобы стать понимать о чем тут речь? Благодарю! Это единственное видео которое я нашел на эту тему на русском языке
Вы имеете в виду формат Google Docs?
@@IT4eachcom Да
Даже у такого чайника, как я работает (просто справка, три поля данных+2 поля: время и дата), соответственно убрал выбор шаблона и контрагента. Теперь еще допилить осталось преобразование в pdf и отправку Email.
Супер! Мои поздравления!
Кстати, преобразовать в pdf Apps Script ещё позволит. Но вот по имейл отправить даст только с ссылку, а не сам pdf-файл.
Чтобы отправить именно файл, как вложение, потребуется доступ по API.
@@IT4eachcom Кстати, если поле "дата" в столбце-источнике задается руками (например, дата рождения), а не функцией, то достаточно отформатировать этот столбец, как текстовый, и утилита форматирования даты не нужна.
Хорошее видео
Подскажите, а таким же образом можно и таблицы вставлять из google sheet?
Спасибо за оценку!
Ну уверен, что понял вопрос о вставке таблицы. Если имелось в виду: можно создать в Google Doc таблицу и таким же образом, как рассказано в видео, менять в ней данные - то да, можно без проблем.
Если же нужна вставка таблицы с произвольными данными, то, пожалуйста, уточните вопрос.
А изменяемые данные в шаблоне обязательно должны заключаться в фигурные скобки, или это для облегчения понимания?
Да, именно для облегчения понимания.
Здравствуйте , писал на основе видео свой скрипт и наткнулся на такого рода проблему , я создаю файл и читаю из ячейки в переменную для замены дату которая добавляется в документ но вместо нужных мне допустим 01.04.2020 я получаю строку "Fri Dec 04 2020 00:00:00 GMT+0300 (Москва, стандартное время)" , как решить чтобы в переменной хранилось только "01.04.2020" которую я вношу как в имя документа так и в его текст ?
Здравствуйте!
В JS дата - это отдельный самостоятельный формат. Ниже пример, как получить сегодняшнюю дату в нужном Вам текстовом формате:
let today = new Date();
let timeZone = Session.getScriptTimeZone()
let todayStr = Utilities.formatDate(today, timeZone, 'dd.MM.yyyy');
А какой скрипт надо написать чтобы из таблицы когда данные в гугл док переносятся, название файла задавалось из таблицы а не копия шаблона?
Здравствуйте!
Для этого нужны значительные изменения скрипта. И в комментарии этого не объяснить. Вот моя почта для связи: it4each.com@gmail.com
Подскажите пожалуйста, как можно исправить:
В гугл таблице дата стоит 16.12.2020, при этом в гугл док она подтягивается вот в таком виде: Wed Dec 16 2020 00:00:00 GMT+0200 (Восточная Европа, стандартное время).
Нужно, чтобы и в гугл доке дата отражалась как 16.12.2020.
Скрипт делала на основании вашего примера. У вас все работает по умолчанию, а у меня - нет. Подскажите пожалуйста, почему так и как это можно исправить.
Спасибо.
Здравствуйте!
В JS (и Apps Script) существуют свой собственный формат даты. Ниже приводится пример кода, который преобразует формат даты в строковое значение:
let today = new Date();
let timeZone = Session.getScriptTimeZone()
let todayStr = Utilities.formatDate(today, timeZone, 'dd.MM.yyyy');
Подставьте в *today* значение из таблицы в формате дата (Wed Dec 16 2020 00:00:00 GMT+0200 (Восточная Европа, стандартное время).) и получите то же значение в формате строки: 16.12.2020.
@@IT4eachcom Спасибо за ответ. А если совсем для "чайников": для вашего примера, в какую часть кода это нужно ставить.
Примерно сюда:
var client = {
name: sc.getRange(indx, 4).getValue(),
id: sc.getRange(indx, 5).getValue(),
id_dateOfIssue: sc.getRange(indx, 6).getValue(),
};
То есть данные столбца *Дата* должны быть предварительно обработаны перед тем, как быть присвоенными переменной в json формате.
Вы случайно не знаете, как можно скопировать таблицу из гугл-таблиц в гугл-документы, сохранив при этом форматирование? Нигде не могу найти.. Необходимо в приложение к договору вставлять смету в красивом виде, а пока только получилось просто подтянуть сырую таблицу. Настраивать форматирование скриптом в самом гугл-доке кажется очень неудобным и сложным. Да и как-то проходиться по каждой ячейке для ее форматирования - странно..
Должна же быть какая-то аналогия процессу ctrl+c таблички в Google Sheets ---> ctrl+v в документ Google Docs..
Если сможете что-то посоветовать - буду счастлива. Заранее спасибо!
Здравствуйте!
Возможно, Вы имеете в ввиду какие-то особенное форматирование, но шрифт, его размеры и его стиль вполне себе сохраняются, если банально скопипастить ячейки Google Spreadsheet в Google Doc.
А если сохранить связь между документами, то все изменение значений и формата в ячейках spreadsheet будут перенесены в Google Doc (правда, для этого надо будет обновить таблицу в Google Doc).
@@IT4eachcom я про то, как это сделать с помощью скрипта. У меня есть шаблон договора и приложения. Договор я легко заполняю по принципу, описанному в вашем видео. А в приложении у меня должна быть таблица сметы, красиво отформатированная.
Вот как скриптом ее можно скопировать и вставить в документ, сохранив форматирование из гугл таблицы?
@@IT4eachcom как сделать ручным образом я понимаю. Мне нужно заполнение документа автоматически
На заказ возможны любые доработки моего скрипта. Для этого нужен пример таблицы, которую надо вставить в документ и образец, как всё это должно выглядеть. Мой адрес: IT4each.com@gmail.com
Здравствуйте! возможно в гугл докс создать автозаполнение слов, при вводе первых букв?
Здравствуйте!
Если в ячеке подключена валидация данных, то автозаполнение уже присутствует по умолчанию.
@@IT4eachcom Речь идет не об ячейках таблицы, а docs
Не представляю как это вообще может выглядеть в принципе.
Должны быть
1.) выделенное поле ввода
2.) и список значений для подстановки.
И как это всё это можно организовать в гуглдоке?
Из чего брать список и что считать полем ввода?
у меня замена не произошла..с начала ролика...все по видео писал, что не так?
Здравствуйте!
Не видя кода сложно сказать.
Если нет сообщения об ошибке в скрипте, то скорее всего неправильно указаны метки на листе Doc.
здравствуйте! я добавляю другие слова на principal но они не работают, почему?
Здравствуйте! Менять/добавлять метки необходимо сразу в трёх местах: в шаблоне документа, в таблице и в скрипте. Причём в скрипте это делается сразу в нескольких местах. По всей видимости, Вы где-то пропустили замену/добавление.
@@IT4eachcom да я так сделал но если я добавляю то весь код накрывается и работают только principal.name , principal.id если у вас есть время и ВК то могу ли я вам скинуть скриншот чтобы вы посмотрели?
Подробно опишите проблему и вложите в сообщение свой скрипт (можно также добавить ссылки на файлы). Мой емейл: IT4each.com@gmail.com
@@IT4eachcom всё, понял спасибо, сделаю отправлю
Ок!