为什么 Google Apps 脚本中的 getBlob() 没有获取最新版本的文档?

Why is getBlob() in Google Apps Script not fetching the latest version of the document?

我正在开发一个 Google Apps Script 应用程序,当提交表单时,它会从 Google 表格中获取数据并将其插入到 Google 文档中,然后发送给提交表格的人。所有代码都可以正常工作,除了文档附加到电子邮件的部分。

密码

MailApp.sendEmail({
    to: email,
    subject: "Subject line",
    body: "Body",
    attachments: [doc.getBlob()]
  })

我期望发生的事情

程序将数据注入 Doc 后,应将 current 文档转换为 PDF 并通过电子邮件发送。

实际发生了什么

发出的PDF不是文档的最新版本。例如,他们可能有来自先前测试 运行 的数据。 Apps Script 似乎以某种方式缓存了文档的 blob。重要的是要注意数据实际上被注入到文档中:当我打开文件时,它会显示最新表单提交的数据。

谁能告诉我获取最新文档 blob 的方法,或者清除 blob 缓存的方法?

您需要刷新并应用 saveAndClose() 的未决更改。

试试这个:

doc.saveAndClose();

MailApp.sendEmail({
    to: email,
    subject: "Subject line",
    body: "Body",
    attachments: [doc.getBlob()]
  })