#google-apps-script #google-sheets #google-docs
Вопрос:
Мне нужно автоматически заполнять шаблон документов Google каждый раз, когда кто-то отправляет форму Google. У меня есть лист Google со всей информацией, и у меня есть шаблоны документов, в которых указаны области, которые я хочу заполнить, но я не могу найти нигде, где показано, как делать то, что мне нужно.
Может ли кто-нибудь поделиться этими знаниями, пожалуйста?
Комментарии:
1. Это вполне возможно. Пожалуйста, предоставьте более подробную информацию о вашем шаблоне.
2. Шаблон предназначен для цитаты. Я пытаюсь скопировать имя, фамилию, адрес, номер телефона и адрес электронной почты. Я также пытаюсь заставить листы генерировать справочный номер, но я не могу заставить его работать, когда данные заполняются на листе из формы отправки.
3. Ну, похоже, у вас уже есть ответ, пожалуйста, поработайте с волонтером, чтобы решить любые дальнейшие вопросы.
Ответ №1:
То, что вы ищете, — это «Автоматическое заполнение документа Google из формы». Вам нужно будет добавить функцию на свой лист с триггером onFormSubmit. В этой функции вы будете
- ссылка на ваш шаблон
- создайте новый документ по этому шаблону
- сгенерируйте справочный номер
- обновите новый документ информацией
Это будет выглядеть примерно так:
function autoFillGoogleDocFromForm(e) {
// Get your values from form
let timestamp = e.values[0];
let value1 = e.values[1];
let value2 = e.values[2];
// ... continue for however many values you are returning
// Get your template file
let templateFile = DriveApp.getFileById('your_file_id_here');
// Set the folder you want to create the new file in
let responseFolder = DriveApp.getFolderById('your_folder_id_for_new_doc');
// Create your reference number
let refNumber = createReferenceNumber(); // You'll need to write this
// Create your new file
let newDocName = createNewDocFileName(); // You'll need to write this
let copy = file.makeCopy(newDocName , responseFolder);
// Open the newly created document so it can be updated
let doc = DocumentApp.openById(copy.getId());
// Update the doc with your new data
let body = doc.getBody();
// The template should have placeholders {{ }} to replace the value with
body.replaceText('{{value1}}', value1);
body.replaceText('{{value2}}', value2);
body.replaceText('{{Reference Number}}', refNumber);
doc.saveAndClose();
}
Конечно, вам нужно будет написать сценарий для создания ссылочного номера и сценарий для генерации имени файла. (Или просто добавьте их в строку, они не обязательно должны быть отдельными сценариями.) В вашем вопросе упоминалось, что у вас возникли проблемы с созданием справочного номера. Я рекомендую создать новый вопрос с кодом, который вы пробовали, и любыми ошибками, которые вы получаете.