2012-11-16 2 views
1

В поисках наставлений по следующему:Merge Форма Представление документа - потерянный новичок

Пользователя представляет форму Formstack -> Регистрационная форма заполнит строку на Google Spreadsheet -> Trigger исполнение документа слияния для этого представления (теперь ROW на листе) с заголовком столбца, определяющим переменные -> Объединенный документ электронной почты для пользователя через отправленный адрес электронной почты.

В моем документе требуется возможность условно обрабатывать многие переменные (если/then условный текст основан на ответе формы). Я играл с приложением Ultradoc, которое отлично подходит для обработки переменных в Документе Google, поддерживает условия и т. Д.

Однако проблема заключается в том, что он не знает, как выбрать один ROW данных, предназначенный для запуска слияния для всего в каждом столбце.

Одна из идей может заключаться в том, чтобы запустить сценарий, который берет эту новую ROW, и каким-то образом делает ее похожей на лист двух строк (заголовок + строка)? Каким-то образом скрывает другие строки? Это кажется ужасно клочья. Каков правильный подход к чему-то подобному?

Заранее спасибо

+0

[Что вы пробовали?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/) Пль ase опубликовать некоторый код. – durron597

ответ

2

Вы на самом деле не нужны никакие приложения сторонних для этого. Создайте форму в форме Google, создайте скрипт и запустите его в форме.

Чтобы получить значение, которые были введены в форму, передать форму представления в качестве параметра функции: function processForm(e){

Чтобы получить данные в форме, доступ к e.values массиву. Он индексируется нулем, начиная с верхнего элемента формы.

Храните представленные данные в переменные

var name = e.values[0]; 
var email = e.values[1]; 
// and so on... 

Выполните любую обработку проверки или документа.

Создайте копию шаблона документа

var copyId = DocsList.getFileById("templateDocID") 
      .makeCopy(docName+' from '+name) //or whatever you wanted to call the resulting document 
      .getId(); 
var copyDoc = DocumentApp.openById(copyId); 
var copyBody = copyDoc.getActiveSection(); 

Заменить текст в шаблоне

copyBody.replaceText("NAME", name); 
copyBody.replaceText("EMAIL", email); 
// and so on... 

Отправить документ пользователю (для моего приложения, я послал в формате PDF, но вы можете отправить его, как бы вы хотели)

copyDoc.saveAndClose(); 
var pdf = DocsList.getFileById(copyId).getAs("application/pdf"); 
MailApp.sendEmail(email, copyDoc.getName(), "Here's your document", {attachments:pdf}); 
DocsList.getFileById(copyId).setTrashed(true); 
Смежные вопросы