小编cho*_*opz的帖子

如何从Google表单中提取响应项

我已经制作了一个表格来捕获2个数据.

  1. 电子邮件地址.
  2. 用户想要订阅的组.

每个组都有自己的电子表格.[根据发布的代码,每个都有自己的片材相同的内电子表格.]

当用户提交表单时,表单应捕获电子邮件地址,并将数据发送到用户订阅的相应电子表格.

这就是我到目前为止所做的.我被困了..

有没有办法专门从特定的文本框/选项..etc中检索数据?

我知道的唯一方法是循环所有数据并逐个检索它...这使我很难将2个数据链接在一起......例如: "johndoh@email.com" subscribed to "Group 1"

function onFormSubmit() {
  var form = FormApp.getActiveForm();

  var formResponses = form.getResponses();
  for (var i = 0; i < formResponses.length; i++) {
    var formResponse = formResponses[i];
    var itemResponses = formResponse.getItemResponses();
    for (var j = 0; j < itemResponses.length; j++) {
      var itemResponse = itemResponses[j];

      // Checks if it is multiple choice option
      if (itemResponse.getItem().getType() == FormApp.ItemType.MULTIPLE_CHOICE) {

        // If user chooses group 1, open …
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script google-forms

7
推荐指数
1
解决办法
2万
查看次数

Google Classroom - 以编程方式创建作业

我正在使用谷歌应用程序脚本为教室创建带有上传文档的作业。但是,有一个错误。

执行失败:收到无效的 JSON 负载。“course_work.materials[0]”处的未知名称“share_mode”:找不到字段。收到无效的 JSON 负载。“course_work.materials[0].drive_file”处的未知名称“id”:找不到字段。收到无效的 JSON 负载。“course_work.materials[0].drive_file”处的未知名称“标题”:找不到字段。(第 2 行,文件“TEST”)[总运行时间 0.061 秒]

这是我的代码。我知道错误所在materials,但我不确定我做错了什么。

function myFunction() {
  var exec = Classroom.Courses.CourseWork.create({
    title: "Test File",
    state: "DRAFT",
    materials: [
      {
        driveFile: {id: "1ENk55RMtApIydyPFe0uyuhmu6nSV4", title: "Test File"},
        shareMode: "STUDENT_COPY"
      }
      ],
    workType: "ASSIGNMENT"
  }, "3896298178");
  Logger.log(exec);
}
Run Code Online (Sandbox Code Playgroud)

google-apps-script google-classroom

1
推荐指数
1
解决办法
1756
查看次数

如何使用OnChange()触发器

我有一个电子表格,以及该电子表格的主副本。每次用户将数据输入到单元中时,它都会获取新数据并放入主副本中。

但是最近,我注意到一个用户创建了一个新列,但该列未被OnEdit()捕获。

因此,我进行了查找,并看到了去年实现的OnChange()。

但是,我不知道如何使用该触发器。

如何检索新列或行或用户更改的合并单元格,并将其复制到我的主副本中?我找不到关于此的文档。

triggers google-sheets google-apps-script

0
推荐指数
1
解决办法
1398
查看次数

GAS - 将变量传递给HTML输出,然后传递给Scriptlet

Code.gs

function doPost(e) {
    ...
    template.data += getCustomerData + "<br>";
}
return template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
Run Code Online (Sandbox Code Playgroud)

的index.html

...
<?= data ?>
Run Code Online (Sandbox Code Playgroud)

显示的代码显示正确的值.但是,它不会转换<br>为html.我不确定为什么它不起作用,因为template.evaluate()它应该返回一个HtmlOutput对象.

html google-apps-script

0
推荐指数
1
解决办法
1679
查看次数