我正在尝试编写一个简单的提醒电子表格,该电子表格应该按月启动。
Here就是一个例子。
我们的想法是在此工作表上使用查询/导入范围公式,因此脚本使用的范围将自动更新。
关于脚本,我发现了一篇有趣的文章,它使用工作表范围并向每个人发送自定义消息:
function EnviarLembretes() {
var sheet = SpreadsheetApp.getActiveSheet();
var PrimeiraLinha = 2;
var NumLinhas = sheet.getRange(2, 4).getValue();
var Lista = sheet.getRange(PrimeiraLinha, 1, NumLinhas, 3);
var DadosLista = Lista.getValues();
for(i in DadosLista){
var row = DadosLista [i];
var email = row [0];
var subject = row [1];
var message = row [2];
MailApp.sendEmail(email, subject, message);
}
}
像魅力一样工作,但这并不是我想要的。
不知道它是否可能(可能是HTML),但我想发送一个图像(对每个人都一样),并在其上嵌入自定义超链接。因此,我会调整公式,只需从工作表中捕获一个电子邮件地址和要添加到图像的超链接。
另外,我有点担心" SpreadsheetApp.getActiveSheet();"这是在脚本中使用的。由于脚本将每月触发并且工作表自动更新,我不会假装再打开文件。因此,我正在寻找一种认证活动工作表的方法,这是我可以通过此帖子中分享的网址访问的方式。
任何帮助将不胜感激!
答案 0 :(得分:0)
我还没有完全测试过这个脚本,但它应该可以工作。
这会将存储在Google云端硬盘中的内嵌图片发送到电子邮件地址,并从表格的C栏检索到超链接。
使用.getSheetByName('Página1');
可确保脚本始终查找此工作表以查找信息。
可以通过更改<img>
标记中的宽度和高度值来设置图像的大小。
function EnviarLembretes() {
var sheet = SpreadsheetApp.getActiveSpreadsheet.getSheetByName('Página1');
var Lista = sheet.getRange(2, 1, sheet.getLastRow(), 3);
var DadosLista = Lista.getValues();
var image = DriveApp.getFileById("-------"); //Get the image from Google Drive file ID
var blob = image.getBlob(); //Get the image blob
var imageBlob = Utilities.base64EncodeWebSafe(blob.getBytes()); //Re-encode the image for sending
for (var i = 0; i < DadosLista.length; i++) { // I would NOT use a for in loop for this task - you chould change to for( ; ; )
var body = //Create the body of the message here in HTML format
'<body>'
+
'<p><a href="' + DadosLista[i][3] + '"><img src="cid:imageKey" /width="300" height="300"></a></p>'
+
'<body>';
MailApp.sendEmail({
to : DadosLista[i][0],
subject : DadosLista[i][0],
htmlBody : body,
inlineImages : {
imageKey : blob
}
});
}
}