Google apps script Google Sheets中库存清单上的电子邮件通知
我正在谷歌表单中为我的公司创建一个库存清单。我想要一个脚本来通知我什么时候某个项目缺货。我已经写了一个脚本,但是,我遇到了一个问题,因为我正在使用一个循环来循环列表。如果更多的项目低于给定的最小值,我最终会收到垃圾邮件,因为脚本将再次计算相同的项目。是否有办法为特定单元格的电子邮件设置限制?例如,如果已为特定单元格发送了电子邮件,则在再次更改之前不要再发送,或者类似的情况 非常感谢您的回答。下面是我当前的代码Google apps script Google Sheets中库存清单上的电子邮件通知,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在谷歌表单中为我的公司创建一个库存清单。我想要一个脚本来通知我什么时候某个项目缺货。我已经写了一个脚本,但是,我遇到了一个问题,因为我正在使用一个循环来循环列表。如果更多的项目低于给定的最小值,我最终会收到垃圾邮件,因为脚本将再次计算相同的项目。是否有办法为特定单元格的电子邮件设置限制?例如,如果已为特定单元格发送了电子邮件,则在再次更改之前不要再发送,或者类似的情况 非常感谢您的回答。下面是我当前的代码 // Function trigger is on "change". If chan
// Function trigger is on "change". If changes happen in the selected cells and it's time for re-stock this function will send an e-mail notification.
function checkValue()
{
// Get spreadsheet by ID
var ss = SpreadsheetApp.openById('ID');
// Get sheet by name
var sheet = ss.getSheetByName("Inventory_list_fieldwork");
// Loop from row 4 to 14 - increment by 1
for (var i=4; i<15;i++){
// Check cells in column C (3)
var cellCheck = sheet.getRange(i,3).getValue();
// Check item name from column A (1)
var item_name = sheet.getRange(i,1).getValue();
// If cellCheck is below 9 and cell for item is not blank, send e-mail notification
if(cellCheck < 9 && item_name != ""){
MailApp.sendEmail("email@email.com", "There's a low stock on " + item_name, "There are only " + cellCheck + " "+ item_name + " in stock.");
}
}
}
//函数触发器处于“更改”状态。如果所选单元格发生更改,并且是重新储存的时间,此功能将发送电子邮件通知。
函数checkValue()
{
//按ID获取电子表格
var ss=SpreadsheetApp.openById('ID');
//按名称获取工作表
var sheet=ss.getSheetByName(“库存清单和实地调查”);
//从第4行循环到第14行-增量为1
对于(var i=4;i我决定创建一个额外的列,如果已经通过电子邮件通知,它将在其中设置一个X,并在重新进货后删除该X。这解决了我的问题
// Function trigger is on "change". If changes happen in the selected cells and it's time for re-stock this function will send an e-mail notification.
function checkValue()
{
var ss = SpreadsheetApp.openById('ID'); // Get spreadsheet by ID
var sheet = ss.getSheetByName("Inventory_list_fieldwork"); // Get sheet by name
for (var i=4; i<15;i++){ // Loop from row 4 to 14 - increment by 1
var cellCheck = sheet.getRange(i,3).getValue(); // Check cells in column C (3)
var item_name = sheet.getRange(i,1).getValue(); // Check item name from column A (1)
var already_notified = sheet.getRange(i,4).getValue();
if(cellCheck < 9 && item_name != "" && already_notified != "X"){ // If cellCheck is below 9 and cell for item is not blank, send e-mail notification
already_notified = sheet.getRange(i,4).setValue("X");
MailApp.sendEmail("email@email.com", "There's a low stock on " + item_name, "There are only " + cellCheck + " "+ item_name + " in stock.");
}
else if(cellCheck > 9 && already_notified === "X"){
already_notified = sheet.getRange(i,4).setValue("");
}
}
}
//函数触发器处于“更改”状态。如果所选单元格中发生更改,则该函数将发送电子邮件通知。
函数checkValue()
{
var ss=SpreadsheetApp.openById('ID');//按ID获取电子表格
var sheet=ss.getSheetByName(“库存清单现场工作”);//按名称获取工作表
对于(变量i=4;变量i=9&&U已通知==“X”){
已通知=sheet.getRange(i,4).setValue(“”);
}
}
}
您可以通过使用跟踪哪些单元格和哪些值已通过电子邮件发送。属性在脚本执行后不会被擦除。它们将保留在那里,直到您更新或删除它们。但您可以通过编程方式完成所有操作。