Email 将谷歌电子表格以pdf格式附加到电子邮件

Email 将谷歌电子表格以pdf格式附加到电子邮件,email,pdf,google-apps-script,Email,Pdf,Google Apps Script,我想创建一个特定工作表的PDF(不一定是活动的),并将其作为电子邮件附件发送。我借用并尝试了几个代码片段,但没有一个能正常工作。我已经搜索和分析了所有我能找到的论坛,但我无法找出问题所在。我是一个新手程序员,所以我喜欢简单。这段代码对我来说很直观,但它给出了以下错误:“很抱歉,当前没有可用的服务器。请稍等,然后重试。”调试器说pdf和attach都未定义 var pdf = SpreadsheetApp.getActive().getAs('application/pdf').getBytes(

我想创建一个特定工作表的PDF(不一定是活动的),并将其作为电子邮件附件发送。我借用并尝试了几个代码片段,但没有一个能正常工作。我已经搜索和分析了所有我能找到的论坛,但我无法找出问题所在。我是一个新手程序员,所以我喜欢简单。这段代码对我来说很直观,但它给出了以下错误:“很抱歉,当前没有可用的服务器。请稍等,然后重试。”调试器说pdf和attach都未定义

var pdf = SpreadsheetApp.getActive().getAs('application/pdf').getBytes();
var attach = {fileName:'test.pdf',content:pdf, mimeType:'application/pdf'};
MailApp.sendEmail(recipients, subject, body, {attachments:[attach]});
三件事:

  • 你能帮我让pdf/附件功能正常工作吗
  • 你能帮我修改一张特定的表格(比如,表格1)吗
  • 有没有可能在一张纸上而不是在整张纸上制作一个pdf文件

  • 谢谢

    使用getBlob而不是getBytes。也不能指定特定的图纸。将该工作表复制到新的电子表格中,将其转换为pdf格式,然后将其删除。

    您试图将一个类的方法应用到另一个未实现该工作表的类。(例如,
    getAs()
    不是一种
    电子表格
    方法。)在编写脚本时,请注意自动完成功能,这有助于避免此错误。有关详细信息,请参阅

    答复:

  • 请参见,其中演示了如何从工作表生成PDF

  • 要分离一张纸,请参见ajb1970对同一问题的回答。这里的想法是将你感兴趣的工作表复制到一个新的、临时的电子表格中,然后用它制作你的PDF

  • 要对某个范围执行此操作,请重复步骤2,但要对您感兴趣的范围执行此操作


  • 好的,谢谢你解释需要新的临时表格。知道了这一点,我从这篇文章中借用了代码,因为我可以更好地遵循逻辑。成功了!有没有办法防止网格线出现在PDF上?谢谢你的帮助!是吗?不幸的是,你不能从一个脚本中做很多事情。是的,很多次。我能找到的最好办法是将我不想要的网格线变成白色(在文档中,而不是脚本中)。这是一个粗糙的工作,但它确实起了作用。白色网格线不会显示在PDF上。遗憾的是,您无法编写白色网格线脚本。正是这些小事让我们发疯。。。