Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如果表单重新提交,链接到表单的工作表中的数据能否合并到google文档中?_Google Apps Script - Fatal编程技术网

Google apps script 如果表单重新提交,链接到表单的工作表中的数据能否合并到google文档中?

Google apps script 如果表单重新提交,链接到表单的工作表中的数据能否合并到google文档中?,google-apps-script,Google Apps Script,场景:这是供音乐教师检查乐器的。在一个非远程学习的世界里,他们会使用预先制作好的物理协议表,由家长填写并同意保持仪器的安全。姓名、地址、电话等都在上面。他们正在将此表单移动到谷歌表单,学区允许家长输入的姓名计入手写签名的leu(是的,我知道可以手写的附加组件,但这需要其他老师复制,我不希望他们担心下载附加组件)。对于物理版本,家长填写并提交,然后教师填写要签出给他们的仪器的序列号以及他们的签名。然后,他们将一份NCR彩色副本还给家长。把最上面的原件归档 当前状态: 表格完成了 它填充一个谷歌

场景:这是供音乐教师检查乐器的。在一个非远程学习的世界里,他们会使用预先制作好的物理协议表,由家长填写并同意保持仪器的安全。姓名、地址、电话等都在上面。他们正在将此表单移动到谷歌表单,学区允许家长输入的姓名计入手写签名的leu(是的,我知道可以手写的附加组件,但这需要其他老师复制,我不希望他们担心下载附加组件)。对于物理版本,家长填写并提交,然后教师填写要签出给他们的仪器的序列号以及他们的签名。然后,他们将一份NCR彩色副本还给家长。把最上面的原件归档

当前状态:

  • 表格完成了

  • 它填充一个谷歌表单

  • 我找到了下面的脚本,它在表单的一列中添加了一个链接,允许教师返回表单编辑模式,添加学区序列信息和他们的“签名”。然后必须像家长最初那样点击“提交”。我还添加了一个触发器(以编辑>当前项目的触发器方式),以便在提交表单时自动执行这些触发器

      function autoFillGoogleDocFromForm(e) {
    
        var timestamp = e.values[0];
        var studentID = e.values[4];
        var studentFIRST = e.values[5];
        var studentLAST = e.values[6];
        var teacherSignature = e.values[19];
        var districtNumber = e.values[18];
    
        var file = DriveApp.getFileById('1nEEl6dcKTIZ5WZJDRdpD_ikuyupO58p5FgK5Yb63llc'); 
    
    
        var folder = DriveApp.getFolderById('18vUwzLCMt3nwephPC6KlyAVZ4wsfxZkF')
        var copy = file.makeCopy(studentLAST + ',' + studentFIRST, folder); 
    
        var doc = DocumentApp.openById(copy.getId()); 
    
        var body = doc.getBody(); 
    
      body.replaceText('{{ID}}', studentID); 
        body.replaceText('{{studentFirst}}', studentFIRST);  
        body.replaceText('{{studentLast}}', studentLAST); 
        body.replaceText('{{teacherSignature}} ', teacherSignature); 
        body.replaceText('{{districtNumber}}', districtNumber); 
    
        doc.saveAndClose(); 
      }
    
  • 该行信息由教师提供的附加信息填充

我希望的是:

  • 将每行“邮件”中输入的信息合并到一个谷歌文档中,该文档看起来就像我们目前拥有的物理表单。这样,在他们将教师信息直接填写到表格中或通过上面列出的重新提交表单方法后,各教师可以更轻松地将该文档以PDF格式发送回家长
问题:

  • 我知道触发器菜单选项中的“编辑”和“更改”选项。他们都不在这里工作
  • 我知道“onEdit”脚本的功能,但是,我不知道如何将其添加到上面的脚本中
  • 我更希望这个谷歌文档的创建是由老师点击“提交”触发的,而不是将其添加到谷歌表单中。原因是,我想避免在老师不断犯错的情况下复制过多的谷歌文档,但速度要慢到在更正之间创建文档。在我看来,一旦他们点击“提交”按钮,就把它完成是避免这种情况的最好方法
额外学分:

  • 这是一种自动操作,可以将它创建的Google文档转换为包含在同一文件夹中的PDF。这样,老师就可以直接发送,而不用担心创建PDF步骤
所有这些的最终理想工作流程:

  • 家长填写谷歌表格
  • 教师通过上面脚本创建的URL,添加他们需要添加的信息
  • 当教师点击submit时,会创建一个Google文档和/或PDF,其中他们和家长添加的信息已合并到我们当前的物理表单中的预制模板中
  • 教师找到PDF并将其发送回家长

  • 您是否尝试过使用现成的解决方案,如?
    据我所知,他们拥有您所需的所有自动化功能+集成机器人程序,可根据您打开的表单或文档类型更改用户角色

    Google文档没有OneEdit或onChange()。此脚本位于工作表中,而不是文档中。此脚本执行合并。我只是想有一种方法,可以在老师回去添加他们的信息后自动进行合并,或者我可以在每一行中使用复选框或类似的东西来激活合并。此外,我没有在帖子中提到这一点,但是,我们不需要电子邮件。因此,任何将家长自己的回答(或老师添加的回答)通过电子邮件发送给家长的选项都不是选项。onFormSubmit位于链接的工作表电子表格中,但它可以访问和记录。如果要使用onEdit()或onChange触发器,则必须在工作表中编辑某些内容,因此要编辑的工作表在哪里,以及要对其执行什么操作。这个问题听起来像是你希望我们做的愿望清单。虽然我们中的许多人都会编写脚本,但它通常是定义良好、易于调试的,而且通常问题必须包含对答案的完整尝试。这两个问题都没有遇到。