将Google电子表格作为pdf附加到电子邮件中

时间:2013-12-04 01:37:46

标签: email pdf google-apps-script

我想创建特定工作表的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]});

三件事:

  1. 你能帮我正确地使用pdf / attachment功能吗?
  2. 你可以帮我修改一下特定的工作表(比方说,Sheet1)吗?
  3. 是否可以在纸张上而不是整张纸张上制作pdf?
  4. 谢谢!

2 个答案:

答案 0 :(得分:1)

您正在尝试将一个类的方法应用于另一个不实现它的方法。 (例如getAs()不是Spreadsheet方法。)在编写脚本时,请注意自动完成功能,这有助于避免此错误。有关详细信息,请参阅this previous answer

数目:

  1. 请参阅Google Apps Script to Email Active Spreadsheet,其中演示了如何从工作表生成PDF。

  2. 要隔离单张纸,请参阅ajb1970对同一问题的回答。这里的想法是将您感兴趣的工作表复制到一个新的临时电子表格中 - 然后从中制作PDF。

  3. 要使用范围执行此操作,请重复步骤2,但要使用您感兴趣的范围。

答案 1 :(得分:0)

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