我正在设置一个 gooleappscript,如果电子表格中的某个值范围满足特定条件,则自动发送邮件。我需要读取多个单元格(A1 到 A10)的值并检查其是否小于 3 ,如果是,则发送发送至上述邮件 ID 的邮件。我已经完成了脚本,但它的唯一读取值来自第一个单元格并相应地发送邮件。我的目的是读取每个选定的单元格值,然后进行比较。任何纠正它的想法。
下面是我使用的代码。
function sendMail() {
if (SpreadsheetApp.openById('1bmAFWR7YsfMlgxExLKY4**********').getRange("A2:A10").getValue()<3) ;
MailApp.sendEmail("s*****@gmail.com", "*Subject*******", "Dear Sreenath, Your **** is getting expired in two days !");
}
我已经尝试过getRange("A2:A10").getValue()<3
但它读取并比较 A2
中的值only.ie 在这种情况下仅读取并比较值 10。我需要读取 A2
中的所有值至A10
并检查是否小于3。如果其中任何一个小于3则需要触发发送邮件命令。
非常感谢任何帮助。
最佳答案
您需要修复一些问题:
getValue()
仅获取一个值。您想要该范围内的所有值。因此,请使用getValues()
。 Ref doc here .
您收到的值是一个数组。您需要循环遍历数组并检查每个值。
注意这个
"Returns a two-dimensional array of values, indexed by row, then by column"
您可能还想指定从哪个工作表获取值。
所以我会尝试这样的事情:
function sendMail() {
var ss = SpreadsheetApp.openById('1bmAFWR7YsfMlgxExLKY4**********'); // The spreadsheet
var sheet = ss.getSheetByName("The_Name_Of_Your_Sheet_Goes_Here"); // The sheet that has the data
var data = sheet.getRange("A2:A10").getValues(); // The values from the sheet
for (var i = 0; i < data.length; i++) { // Loop throught the values
if ( data[i][0] < 3 ) { // The array is a 2-d array. See ref doc in this post
MailApp.sendEmail("s*****@gmail.com", "*Subject*******", "Dear Sreenath, Your **** is getting expired in two days !"); // Send email
}
}
}
关于javascript - 如何从 Google 表格中的一系列单元格中获取值并将其与预定义值进行比较,以便在满足条件时发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57688232/