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
,则不能执行警报/对话框,但也可以执行其他操作。如果可以的话,你可以试着发电子邮件