我正在尝试使用 Google Apps 脚本通过电子邮件将 Google 表格作为 PDF 附件发送。为此,我使用 getAs() 方法将工作表转换为 PDF,然后可以将其附加到电子邮件中。但是,当我运行我的脚本时,我遇到了一个 TypeError,它说“sheet.getAs() 不是一个函数”。
这是我正在使用的代码:
function dailyOnHandReport() {
var sheet = SpreadsheetApp.openById("1axXcJKSawmrlLJYd1YepZZX-3hub7SCAbrE8Su3thMc").getSheetByName("Sheet1");
var pdf = sheet.getAs(MimeType.PDF);
var message = {
to: "[email protected]",
subject: "Daily On Hand Sheet",
body: "Here's our On Hands for today /n/nHave a great eveing!.",
attachments: [pdf]
};
MailApp.sendEmail(message);
}
我也尝试过使用 getBlob() 方法而不是 getAs(),但这导致了一个不同的 TypeError,它说“sheet.getBlob() 不是一个函数”。似乎这两种方法都没有按预期工作,我不确定如何解决这个问题。
我已经寻求帮助并尝试了不同的解决方案,但到目前为止都没有奏效。
Class Sheet没有
getAs
的方法。我认为这就是您当前问题的原因。当你想导出PDF格式的特定工作表时,如何进行以下修改?
function dailyOnHandReport() {
var spreadsheetId = "1axXcJKSawmrlLJYd1YepZZX-3hub7SCAbrE8Su3thMc";
var ss = SpreadsheetApp.openById(spreadsheetId);
var sheet = ss.getSheetByName("Sheet1");
var url = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/export?format=pdf&gid=${sheet.getSheetId()}`;
var pdf = UrlFetchApp.fetch(url, { headers: { authorization: "Bearer " + ScriptApp.getOAuthToken() } }).getBlob();
var message = {
to: "[email protected]",
subject: "Daily On Hand Sheet",
body: "Here's our On Hands for today /n/nHave a great eveing!.",
attachments: [pdf]
};
MailApp.sendEmail(message);
}
如果你的Spreadsheet只有一张“Sheet1”,下面的修改怎么样?
function dailyOnHandReport() {
var spreadsheetId = "1axXcJKSawmrlLJYd1YepZZX-3hub7SCAbrE8Su3thMc";
var ss = SpreadsheetApp.openById(spreadsheetId);
var pdf = ss.getBlob();
var message = {
to: "[email protected]",
subject: "Daily On Hand Sheet",
body: "Here's our On Hands for today /n/nHave a great eveing!.",
attachments: [pdf]
};
MailApp.sendEmail(message);
}
application/pdf
。这样,getBlob
就可以使用了。