我正在尝试构建一个脚本,该脚本将根据Google表格中的电子表格中的数据发送电子邮件。
Column 1 - emailAddress
Column 2 - subject
Column 3 - body
Column 4 - signature
Column 5 - fileName (name of the file I'd like to attach, will be different in each case)
Column 6 - checkbox (new functionality in G Sheets, marked= TRUE, unmarked=FALSE).
目的是仅向未标记为已发送的电子邮件发送电子邮件。脚本完成后,复选框应更改为TRUE以避免重复。 我写了下面的脚本但是有两个问题:
功能:
function Email() {
var rng = SpreadsheetApp.getActiveSheet().getActiveRange()
var sheet = SpreadsheetApp.getActiveSheet();
var data = rng.getValues();
for (i in data)
{
var rowData = data[i];
var checkbox = data[5]
var file = DriveApp.getFilesByName(data[4])
var emailAddress = rowData[0];
var body = rowData[2];
var subject = rowData[1];
var signature = rowData[3];
var message = body + '\n\n'+ signature;
if(checkbox is != 'TRUE')
{
GmailApp.sendEmail(emailAddress,subject,message,
{
attachments: [file.next().getAs(MimeType.PDF)]
}
);
cell.setValue("TRUE");
}
}
}
答案 0 :(得分:0)
如何制作一个将从第5列转到代码的fileName变量值?
创建变量var fileName。出于唯一性目的,只需在结尾1,2等处添加一个计数器,使其结束看起来像fileName1,fileName2等
如何强制程序将复选框的状态更改为TRUE并省略已经为TRUE的那些?
使用double for循环,因为使用工作表就像使用2D arrays一样。在里面创建一个if语句:
如果(getValue()是!='TRUE'){
细胞。setValue( “TRUE”)
}
希望你能从伪代码中得到这个想法。