Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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工作表结果_Google Apps Script_Google Sheets_Google Docs - Fatal编程技术网

Google apps script 以Google表单显示Google工作表结果

Google apps script 以Google表单显示Google工作表结果,google-apps-script,google-sheets,google-docs,Google Apps Script,Google Sheets,Google Docs,我有一个谷歌表格,上面有输入电子邮件地址的问题,还有一个谷歌电子表格,上面有电子邮件和出席栏: 电子表格样本 Timestamp Email Address Attending Jan 02 2020 mernawny1213333@gmail.com Yes msmsmsmsms@gmail.com No Jan 20 2020 ssss@gmail.com Yes 我想检查输入的电子邮件地

我有一个谷歌表格,上面有输入电子邮件地址的问题,还有一个谷歌电子表格,上面有电子邮件和出席栏:

电子表格样本

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日参加”,否则显示“否”-这方面有帮助吗


谢谢。

当前支持的表单触发器有
onOpen
onFormSubmit

我创建了一个脚本,它正在工作,但问题是触发器

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

  • onFormSubmit
    -表单已提交时(由于此错误而无法执行对话框/警报
    错误:无法从此上下文调用FormApp.getUi()

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

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');
      }
    });
  } 
}
确保在
触发器下添加函数:

当表单以“编辑”方式打开时:

样本数据:

产出:


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

当前支持的表单的触发器是
onOpen
onFormSubmit

我创建了一个脚本,它正在工作,但问题是触发器

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

  • onFormSubmit
    -表单已提交时(由于此错误而无法执行对话框/警报
    错误:无法从此上下文调用FormApp.getUi()

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

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');
      }
    });
  } 
}
确保在
触发器下添加函数:

当表单以“编辑”方式打开时:

样本数据:

产出:

如果您更喜欢使用
onFormSubmit
,则不能执行警报/对话框,但也可以执行其他操作。如果可以的话,你可以试着发电子邮件