如何将Google电子表格附加到电子邮件中

时间:2018-02-21 16:42:40

标签: google-apps-script

我正在尝试附加已创建的电子表格并通过电子邮件发送。我发现,如果我尝试

  opts.fileIds.forEach(function(fileId) {
    console.log('fileId ' + fileId);
    var file = DriveApp.getFileById(fileId);
    var blob = file.getAs(file.getMimeType());
    console.log('blob length' + blob.getDataAsString().length);
    console.log('file retrieved size ' + file.getSize());
    console.log('file mime type ' + file.getMimeType());
    attachmentList.push(blob);
  });

我没有得到blob对象,file.getAs返回null但是,file.getBlob工作正常,但把它变成了pdf,这不是我想要的。有没有办法附上这个电子表格?

1 个答案:

答案 0 :(得分:0)

MailAppattachments选项需要一个BlobSource objects数组。如果您查看该链接,可以看到只需附加Google文件而无需额外的工作。这包括电子表格,文档,PDF等。

尝试传回对文件的引用!

opts.fileIds.forEach(function(fileId) {
    console.log('fileId ' + fileId);
    var file = DriveApp.getFileById(fileId);

    //logging
    attachmentList.push(file);
  });

编辑:MailApp出现此行为的原因,我认为是因为MIMETypegetAs() ContentType不同。请查看Google Scripts网站上有关https://developers.google.com/apps-script/reference/base/blob#getAs(String)的内容:

  

对于大多数blob,'application / pdf'是唯一有效的选项。

有人可以证实吗?