【问题标题】: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】:
目前支持的表单触发器是onOpen 和onFormSubmit
我创建了一个脚本,它正在运行,但问题是触发器。
所以我所做的是在打开/刷新您编辑表单的页面时,我触发了以下功能:
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,则不能执行警报/对话,但您也可以执行其他操作。如果没问题,您可以尝试发送电子邮件。