使用电子表格获取getAs(MimeType.PDF)或getAs(' application / pdf')

时间:2018-03-01 22:25:58

标签: google-apps-script

最近是否更改了getAs(MimeType.PDF)或getAs(' application / pdf')功能?

我的代码示例:

var blSheet = DriveApp.getFileById('templateID').makeCopy(title, destFolder);
var ss2 = SpreadsheetApp.open(blSheet);
var sheet2 = ss2.getSheetByName('Sheet Name');
sheet2.getRange("B9").setValue(valueHere);
sheet2.getRange("C10").setValue(valueHere);
sheet2.getRange("D11").setValue(valueHere);
sheet2.getRange("B9:B11").merge();
sheet2.getRange("C9:C11").merge();

等...

然后使用

将此电子表格添加到电子邮件中
blSheet.getAs(MimeType.PDF)

直到一周前这个工作正常。现在我在电子邮件中附上的pdf是空白模板。当我查看google驱动器中的新电子表格时,它会有适当更新/合并的单元格。

任何帮助?

在我看来,getAs正在更新/合并之前获取电子表格,或者它是第一个"版本"即使在电子表格更新后也是如此。

2 个答案:

答案 0 :(得分:0)

查看sendMail()附件documentation选项。它需要一个BlobSource[]对象数组。它实际上只接受未经修改的Google云端硬盘文件,并将其作为PDF附加 - 无需额外的工作。

只需向MailApp sendMail提供一个File对象。

答案 1 :(得分:0)

您可能遇到的问题是对工作表所做的更改未完全提交。

您可能需要致电:

SpreadsheetApp.flush()

这会将您的更改提交到驱动器文件并有望解决问题。