You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Apps Script发送表格PDF附件遇TypeError问题求助

问题分析与解决方案

错误根源

你碰到的TypeError: sheet.getAs() is not a function和TypeError: sheet.getBlob() is not a function,核心问题是Google Apps Script的Sheet(单个工作表)对象并不提供这两个方法:

  • getAs()和getBlob()属于Spreadsheet(整个电子文档)或实现BlobSource接口的对象(如文件、图片),单个工作表实例无法调用这两个方法。

修复方案

方案1:通过原生API指定导出工作表

利用整个电子表格的getAs()方法,先设置导出范围为目标工作表:

function dailyOnHandReport() {
  var ss = SpreadsheetApp.openById("1axXcJKSawmrlLJYd1YepZZX-3hub7SCAbrE8Su3thMc");
  var sheet = ss.getSheetByName("Sheet1");
  
  // 设置仅导出目标工作表
  ss.setActiveSheet(sheet);
  ss.setSpreadsheetDisplayOption(SpreadsheetApp.DisplayOption.FORMATTED);
  
  // 导出为PDF并设置文件名
  var pdf = ss.getAs(MimeType.PDF);
  pdf.setName("Daily_On_Hand_Sheet.pdf");
  
  var message = {
    to: "starfire3d@gmail.com",
    subject: "Daily On Hand Sheet",
    body: "Here's our On Hands for today\n\nHave a great evening!.",
    attachments: [pdf]
  };
  MailApp.sendEmail(message);
}

方案2:优化URL导出方案(你的更新版优化)

你用URL导出的思路是可行的,补充细节让导出更可控:

function dailyOnHandReport() {
  var spreadsheetId = "1axXcJKSawmrlLJYd1YepZZX-3hub7SCAbrE8Su3thMc";
  var ss = SpreadsheetApp.openById(spreadsheetId);
  var sheet = ss.getSheetByName("Sheet1");
  var sheetId = sheet.getSheetId();
  
  // 构造带参数的导出URL,可按需调整PDF样式
  var url = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/export?` +
    `format=pdf` +
    `&gid=${sheetId}` +
    `&portrait=false` + // 横向导出
    `&scale=4`; // 适应页面宽度
  
  var token = ScriptApp.getOAuthToken();
  var pdfBlob = UrlFetchApp.fetch(url, {
    headers: { "Authorization": `Bearer ${token}` }
  }).getBlob();
  
  pdfBlob.setName("Daily_On_Hand_Sheet.pdf");
  
  var message = {
    to: "starfire3d@gmail.com",
    subject: "Daily On Hand Sheet",
    body: "Here's our On Hands for today.\n\nHave a great evening!.",
    attachments: [pdfBlob]
  };
  
  MailApp.sendEmail(message);
}

注意事项

  • 首次运行脚本时,需授权脚本获取电子表格访问和外部请求权限;
  • 若需导出多个工作表,可在URL中追加多个&gid=工作表ID参数,或调整setActiveSheet逻辑批量设置。

内容的提问来源于stack exchange,提问作者david mcgovern

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 16:47:24