我想创建特定工作表的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]});
三件事:
谢谢!
答案 0 :(得分:1)
您正在尝试将一个类的方法应用于另一个不实现它的方法。 (例如getAs()
不是Spreadsheet
方法。)在编写脚本时,请注意自动完成功能,这有助于避免此错误。有关详细信息,请参阅this previous answer。
数目:
请参阅Google Apps Script to Email Active Spreadsheet,其中演示了如何从工作表生成PDF。
要隔离单张纸,请参阅ajb1970对同一问题的回答。这里的想法是将您感兴趣的工作表复制到一个新的临时电子表格中 - 然后从中制作PDF。
要使用范围执行此操作,请重复步骤2,但要使用您感兴趣的范围。
答案 1 :(得分:0)
使用getBlob而不是getBytes。您也无法指定特定的工作表。而是将该表格复制到新的电子表格中,将其转换为pdf,然后将其删除。