使用 Google 表单更新现有的 Google 表格

Posted

技术标签:

【中文标题】使用 Google 表单更新现有的 Google 表格【英文标题】:Use a Google Forms to update existing Google Sheets 【发布时间】:2014-11-27 05:14:28 【问题描述】:

我正在尝试构建一个 Google 表单,它使用来自 Google 表单的响应来填写现有 Google 表格的某些单元格。我还需要 Google 表单上的一些答案来自下拉式菜单中的电子表格。

一个组织目前正在使用现有的电子表格让其成员每周记录一些信息,但是,无论我纠正了多少次,一些成员仍然会错误地填写表格。出于这个原因,我试图让这个过程更加自动化。

当前电子表格的设置方式是为组织的不同部门设置多个工作表。在每个工作表中,有一列专用于该部门中的名称,该列的每一行都有不同的名称。还有专门针对特定周的列,因此将第 1 周的信息放入 D 和 E 列,将第 2 周的信息放入 F 和 G 列等。

前:

# |姓名 |百分比 |... 第 1 周 .... |... 第 2 周 .... | ....

1 |.. 鲍勃..| 0%...... ..|信息 1|信息 2 |信息 1|信息2..|

2 | ..乔..| 99%......|信息1.......................

我希望能够:

    使表单的第一个问题成为选择部门的下拉菜单,然后根据对应于该部门的工作表生成其余问题的信息。 第二个问题下拉菜单选择名称。这些名称将基于电子表格的现有名称列中列出的名称。 一个下拉菜单,用于选择他们提交信息的具体星期。 他们用“信息 1”填写的填框问题。 他们用“信息 2”填写的填框问题。

提交时,表单会根据 (1) 找到正确的工作表,然后根据 (2) 找到正确的行,然后根据 (3) 找到正确的列,然后将 (4) 和 (5) 复制到对应的单元格。

可以这样做吗?还是我需要为每个部门创建一个单独的表格?

我对 Google 脚本一无所知,但我有 C++ 方面的经验,并且对 Python 中的脚本有基本的工作知识。

【问题讨论】:

【参考方案1】:

使用现有的 Google 表单很难实现(但并非不可能)。您不能使用 Google Apps 脚本来操纵表单的显示以响应用户操作,就像在您从头开始编写代码的表单上使用 javascript 一样。

Google Apps 脚本可以像在表单编辑器中一样生成和操作表单,它可以在表单提交时触发以对响应采取行动,但它不能直接与用户交互。

要实现您想要的,您有几个选择。

您可以设置一个带有逻辑分支的多页 Google 表单来获得您想要的表单行为,然后使用触发 onFormSubmit() 的 Apps 脚本来负责将数据移动到适当的位置。

或者您可以完全跳过使用现有的 Google 表单,而是使用作为网络应用发布的 Google Apps 脚本来呈现表单,这样您就可以完全控制向用户显示的表单(html、CSS 和 Javascript),但是您无法利用任何 Google 表单功能。您可以使用 doGet() 呈现表单并使用 doPost() 处理提交。

第三种方法是两者的混合,设置几个单独的 Google 表单,并使用作为 Web 应用程序发布的 Apps 脚本来显示第一个下拉菜单并将用户引导到适当的表单。然后,您可以触发每个 Google 表单的 onFormSubmit() 脚本来处理移动数据。

请参阅以下内容:

https://developers.google.com/apps-script/guides/triggers/events#google_forms_events

https://developers.google.com/apps-script/guides/web#deploying_a_script_as_a_web_app https://developers.google.com/apps-script/guides/html/

【讨论】:

感谢您的帮助。在您发表评论之前,我尝试了设置多页谷歌表单的想法。我现在设置的方式是第一个问题询问什么部门,然后根据答案将它们发送到特定页面。我设法通过使用名为 form ranger 的插件来填充 google 表单上的下拉菜单。现在我只需要获取响应表上的值并将它们放入其他表上的适当位置。事实证明这很困难,因为我不知道谷歌应用脚​​本

以上是关于使用 Google 表单更新现有的 Google 表格的主要内容,如果未能解决你的问题,请参考以下文章

如何在现有的旧版Android项目中使用最新的API添加Google Map?

如何在 python 中使用现有的 google chrome 配置文件和 selenium chrome webdriver?

如何使用Google自动完成和Vue js来自动填写地址?

如何将 Spark-BigQuery_connector 用于现有的 spark 环境(不使用 google dataproc)

我如何测试标记为“自动拒绝新的和现有的会议”的Google日历活动]]

链接现有的Firebase和Google Cloud项目