【问题标题】:Display Google sheet results in Google form在 Google 表单中显示 Google 表格结果
【发布时间】:2020-12-25 14:58:11
【问题描述】:

我有一个 Google 表单,其中包含输入电子邮件地址的问题,并且有一个包含电子邮件和参与列的 Google 电子表格:

电子表格示例

Timestamp   Email Address               Attending 
Jan 02 2020 mernawny1213333@gmail.com   Yes
            msmsmsmsms@gmail.com        No
Jan 20 2020 ssss@gmail.com              Yes

我想要检查输入的电子邮件地址是否在电子表格中? - 如果是,我应该显示“是 2020 年 1 月 2 日参加”,否则显示“否”——这有什么帮助吗?

谢谢。

【问题讨论】:

    标签: google-apps-script google-sheets google-docs


    【解决方案1】:

    目前支持的表单触发器是onOpenonFormSubmit

    我创建了一个脚本,它正在运行,但问题是触发器。

    • onOpen - 打开表格进行编辑时(填写表格时不适用)

    • onFormSubmit - 当表单已经提交时(由于此错误Error: Cannot call FormApp.getUi() from this context,无法进行对话框/警报)

    所以我所做的是在打开/刷新您编辑表单的页面时,我触发了以下功能:

    function showPrompt() {
      var ui = FormApp.getUi();
    
      var result = ui.prompt(
          'Please enter email:',
          ui.ButtonSet.OK_CANCEL);
    
      // Process the user's response.
      var button = result.getSelectedButton();
      var email = result.getResponseText();
      if (button == ui.Button.OK) {
        // User clicked "OK".
        var ssID = '1B2zmo1IIoE9OdgEZQ36gJN4AQ_WMPoWtW6UrvEt25gc';
        var sheetName = 'Sheet1';
        var sheet = SpreadsheetApp.openById(ssID).getSheetByName(sheetName);
        var lastRow = sheet.getDataRange().getLastRow();
        var dataEmail = sheet.getRange('B2:B' + lastRow).getValues().flat();
        var found = false;
        dataEmail.forEach(function(item, index){
          if (email == item && sheet.getRange('C' + (index + 2)).getDisplayValue() == 'Yes') {
            found = true;
            ui.alert(email + ' is attending in ' + sheet.getRange('A' + (index + 2)).getDisplayValue());
          }
          if (!found && index == dataEmail.length - 1){
            ui.alert(email + ' is not attending');
          }
        });
      } 
    }
    

    一定要在triggers下添加函数:

    当表单作为编辑打开时:

    样本数据:

    输出:

    如果您更喜欢使用onFormSubmit,则不能执行警报/对话,但您也可以执行其他操作。如果没问题,您可以尝试发送电子邮件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      相关资源
      最近更新 更多