直接从表单更新文档模板

时间:2016-08-22 21:21:42

标签: google-apps-script

是否可以从表单内容提交表单并更新Doc模板?我做过类似事情的唯一方法是将表单提交到电子表格,并在电子表格中使用onFormsubmit函数更新模板。

这是否可以通过表单和容器绑定脚本来实现?

由于

2 个答案:

答案 0 :(得分:0)

是的,这是可能的,但这并不容易(基本上使用doc作为模板,没有明显的工具)

答案 1 :(得分:0)

我最初的工作是替换我的文档模板中的几行,但现在没有任何工作由于某种原因。我确实在一个点上编辑了模板中的文本,所以我不确定是否会更改文件ID。它创建副本,但replaceText不起作用。附加代码:

`function onFormSubmit(e) {

   var dt = Utilities.formatDate(new Date(), 'GMT', "MM/dd/yyyy")
   var submitter = Session.getActiveUser().getEmail();
   var copyDoc = DriveApp.getFileById('1t5r8IxLgunJ17J2tXkHfw3LRfuXQeTlP5MZURC-23e0').makeCopy('tmpAddress').getId();
   var newDoc = DocumentApp.openById(copyDoc);
   var body = newDoc.getBody();

   var itemResponse = e.response;
   var name = itemResponse.getItemResponses()[0].getResponse();
   var email = itemResponse.getItemResponses()[1].getResponse();
   var pphone = itemResponse.getItemResponses()[2].getResponse();
   var paddress = itemResponse.getItemResponses()[3].getResponse();
   var palot = itemResponse.getItemResponses()[4].getResponse();
   var pcity = itemResponse.getItemResponses()[5].getResponse();
   var pstate = itemResponse.getItemResponses()[6].getResponse();
   var pzip = itemResponse.getItemResponses()[7].getResponse();
   var nphone = itemResponse.getItemResponses()[8].getResponse();
   var naddress = itemResponse.getItemResponses()[9].getResponse();
   var nalot = itemResponse.getItemResponses()[10].getResponse();
   var ncity = itemResponse.getItemResponses()[11].getResponse();
   var nstate = itemResponse.getItemResponses()[12].getResponse();
   var nzip = itemResponse.getItemResponses()[13].getResponse();

   body.replaceText('#{name}', name);
   body.replaceText('#{email}', email);
   body.replaceText('#{pphone}', pphone);
   body.replaceText('#{paddress}', paddress);
   body.replaceText('#{palot}', palot);
   body.replaceText('#{pcity}', pcity);
   body.replaceText('#{pstate}', pstate);
   body.replaceText('#{pzip}', pzip);
   body.replaceText('#{nphone}', nphone);
   body.replaceText('#{naddress}', naddress);
   body.replaceText('#{nalot}', nalot);
   body.replaceText('#{ncity}', ncity);
   body.replaceText('#{nstate}', nstate);
   body.replaceText('#{nzip}', nzip);
   body.replaceText('#{dt}', dt)
   body.replaceText('#{submitter}',submitter)
   newDoc.saveAndClose();

 }
`