微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 Google Form 链接到 Google Sheet? 探索制作副本功能,但我需要与原始所有者共享 针对您的用例的解决方案是使用 Apps 脚本代码说明设置参考

如何解决如何从 Google Form 链接到 Google Sheet? 探索制作副本功能,但我需要与原始所有者共享 针对您的用例的解决方案是使用 Apps 脚本代码说明设置参考

在这里发帖是因为我希望有人可以帮助我编辑指向 Google 表格的链接。我一直无法在网上找到答案,但我希望也许有人比我更了解链接的工作原理,并且可以给我一个答案。

我的任务是更新资金申请(来自非营利组织)以包含预算类别。该应用程序在 Google 表单中,但无法在表单中插入表格供申请人填写。我在 Google 表格中创建了预算大纲,但现在我正在尝试找到最佳解决方案,在表单中创建一个单独的链接,将他们引导到预算文档。从本质上讲,我希望申请人可以填写表格,当他们到达有关预算的部分时,我希望他们点击谷歌表格的链接,制作一份副本,但要与他们共享副本组织的 Google 帐户,以便我们在他们提交申请时可以看到。

我已经尝试了强制复制功能(通过 google 编辑共享链接),但是当我使用与所有者不同的 google 帐户对其进行测试时,它告诉我必须请求许可。共享设置设置为允许任何拥有链接的人访问,所以我不明白为什么在我打开强制复制链接时要求我请求权限。这是行不通的,因为申请人在申请时需要访问它,我们不能让他们每次都等待我们接受请求。

我相信可能有一些解决方案,所以我愿意接受任何建议。我能想到的唯一其他解决方案是为每个申请人创建单独的链接,如果有办法实现自动化吗?

我知道可能有一个解决方案,我要求申请人下载文件并重新上传,或自己共享,但我们的申请人不是英语母语人士,而且他们通常对技术不太熟悉,所以我想要尽可能使流程自动化。

总结:申请人应该能够

  1. 填写谷歌表单
  2. 收到一份单独的预算文件副本(来自谷歌表格)以进行填写。
  3. 预算文件必须与原始所有者共享,以便我们可以查看它并了解它与其他应用程序的关系。

感谢您的考虑!

解决方法

针对您的用例的解决方案是使用 Apps 脚本。

Apps Script 是一个强大的开发平台,可用于构建网络应用和自动执行任务。它的特别之处在于它易于使用并且可以创建与 G Suite 集成的应用程序。

考虑到这一点,您可以创建一个脚本,该脚本将在提交新表单时创建文档副本,并为用户添加所需的权限。从本质上讲,您也将拥有该表格的副本,并且候选人将拥有编辑权限。

因此,该脚本最终将看起来类似于以下内容:

代码

function onFormSubmit() {
  let sheetId = 'ORIGINAL_SPREADSHEET_ID';
  let form = FormApp.getActiveForm();
  let responses = form.getResponses();
  let n = responses.length;
  let currentUser = form.getResponse(responses[n-1].getId()).getRespondentEmail();
  let newSpreadsheet = SpreadsheetApp.openById(sheetId).copy("Sheet copy for " + currentUser);
  let newSpreadsheetId = newSpreadsheet.getId();
  DriveApp.getFileById(newSpreadsheetId).addEditor(currentUser);
}

说明

以上代码段利用了 Apps 脚本的 onFormSubmit 可安装触发器。基本上,每当发送新的表单提交时,上面的代码就会运行。该代码将检索提交的最后一个响应,并通过使用 getRespondentEmail 方法获取用户的电子邮件地址。之后,将创建原始电子表格的副本,并在 编辑者 权限下与刚刚提交表单的用户共享。添加权限是通过使用 addEditor 父类中的 DriveApp 方法完成的。至于访问电子表格副本的用户,这很容易完成,因为用户最终会收到一封电子邮件,告诉他们电子表格已与他们共享。

设置

  1. 您必须为表单选中收集电子邮件选项;

form collect emails option

  1. 打开三点图标并点击脚本编辑器

form script editor

  1. 打开脚本编辑器后,输入上面的代码,不要忘记修改 sheetId,使其与要共享的原始电子表格的 ID 匹配。

  2. 转至触发器页面安装 onFormSubmit 触发器并使用以下选项创建新触发器:

onformsubmit trigger

  1. 将 URL 表单发送给候选人并等待提交。

参考

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。