将Google文档链接从Google电子表格中添加到脚本中的自动电子邮件中

时间:2016-07-11 14:58:13

标签: google-apps-script

以下代码无效,出现以下错误:

  

TypeError:在对象Drive中找不到函数getFileByID。

我试图通过直接在脚本中提供ID来进行测试:

var atta = DriveApp.getFileByID('1XD...c'); //ID is Folder and Google Doc ID I                      want to attach

MailApp.sendEmail(emailto, subject, message, {
  cc: emailcc,
  attachments:[atta]
 });

最后,我想阅读Google电子表格中的链接:

var range = active_actions.getRange(i+1,16) //active_actions is the spreadsheet and i+1,16 is the cell with the link

var link = range.getFormula();
var atta = DriveApp.getFileByID(link); 
MailApp.sendEmail(emailto, subject, message, {
  cc: emailcc,
  attachments:[atta]
 });

1 个答案:

答案 0 :(得分:1)

这并不太难。 Google文档/电子表格/等。不能作为附件放在电子邮件中。这是因为它实际上不是“物理文件”。它只存在于云端。相反,将URL放在电子邮件中,它会给接收器底部的一个小框,Doc看起来像一个附件。

它并不完美,但它已经足够了。有关详细信息,您可以查看此问题请求或Google的应用脚本问题页面:

https://code.google.com/p/google-apps-script-issues/issues/detail?id=585&q=attachment%20types&sort=-stars&colspec=Stars%20Opened%20ID%20Type%20Status%20Summary%20Component%20Owner

编辑(解释SS中的数据提取):

要从范围对象(文本,数字等)中获取数据,您应该使用此格式。

var range = getRange();
var rangeData;
var cellValue;

while (range.hasNext()) {
  rangeData = range.next();
  cellValue = rangeData.getValue();
}

如果你是一个累加器变量,你可以在一个列表/字符串/等中获取每一位数据。

现在您拥有了数据,您可以通过电子邮件发送数据,或者使用它做任何其他事情。