Google apps script 合并表单提交到文档-丢失的新手
寻求以下方面的指导: 用户提交Formstack form->form entry在Google电子表格上填充一行->触发该提交的文档合并执行(现在是工作表中的一行),列标题定义变量->通过提交的电子邮件地址向用户发送电子邮件合并文档 我的文档需要能够有条件地处理许多变量(基于表单响应的if/then条件文本)。我玩过一个名为Ultradoc的应用程序,它似乎非常适合谷歌文档中的变量处理、支持条件等 但是,问题是它不知道如何选择一行数据,而是设计为对每列中的所有内容运行合并 一个想法可能是运行一个脚本,它接受新行,并以某种方式使它看起来像一个两行的工作表(标题+提交行)??不知何故隐藏了其他行?这似乎非常笨拙。这样做的正确方法是什么Google apps script 合并表单提交到文档-丢失的新手,google-apps-script,Google Apps Script,寻求以下方面的指导: 用户提交Formstack form->form entry在Google电子表格上填充一行->触发该提交的文档合并执行(现在是工作表中的一行),列标题定义变量->通过提交的电子邮件地址向用户发送电子邮件合并文档 我的文档需要能够有条件地处理许多变量(基于表单响应的if/then条件文本)。我玩过一个名为Ultradoc的应用程序,它似乎非常适合谷歌文档中的变量处理、支持条件等 但是,问题是它不知道如何选择一行数据,而是设计为对每列中的所有内容运行合并 一个想法可能是运行一
提前感谢您实际上不需要任何第三方应用程序。 将表单创建为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);