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

如何用GAS将Google Sheets数据导出为JPEG/PNG并作为Gmail内嵌图片

解决方案:将指定范围的表格数据转为内嵌图片发送Gmail

要实现将电子表格指定范围导出为PNG/JPEG并内嵌到Gmail正文,无法直接通过getAs(MimeType.PNG)实现(该方法仅支持PDF、CSV等有限格式),需借助Google Sheets的导出API来生成图片,再转为Base64内嵌到HTML邮件中。以下是完整代码及说明:

完整代码

function sendReportWithInlineImage() {
  // 1. 获取目标表格及数据范围
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  // 计算需要捕获的行数:取前10行或所有数据行(取较小值)
  var lastDataRow = sheet.getLastRow();
  var targetRowCount = Math.min(lastDataRow, 10);
  var targetRange = sheet.getRange(1, 1, targetRowCount, sheet.getLastColumn());

  // 2. 构造表格范围的PNG导出链接
  var token = ScriptApp.getOAuthToken();
  var exportUrl = `https://docs.google.com/spreadsheets/d/${ss.getId()}/export?format=png&gid=${sheet.getSheetId()}&range=${targetRange.getA1Notation()}`;

  // 3. 获取图片Blob
  var response = UrlFetchApp.fetch(exportUrl, {
    headers: { 'Authorization': `Bearer ${token}` }
  });
  var imageBlob = response.getBlob();

  // 4. 将图片转为Base64格式用于内嵌
  var base64Image = Utilities.base64Encode(imageBlob.getBytes());
  var imageSrc = `data:image/png;base64,${base64Image}`;

  // 5. 构造带内嵌图片的HTML邮件正文
  var htmlBody = `
    <p>This is just a trial. Ignore.</p>
    <p>以下是表格数据预览:</p>
    <img src="${imageSrc}" alt="表格数据截图" style="max-width: 100%;">
  `;

  // 6. 发送邮件
  var message = {
    to: "trial@gmail.com",
    subject: "Random Subject Line",
    htmlBody: htmlBody,
    // 纯文本备用内容(针对不支持HTML的邮件客户端)
    body: "This is just a trial. Ignore. 请使用支持HTML的邮件客户端查看内嵌的表格图片。",
    name: "Name"
  };
  MailApp.sendEmail(message);
}

关键说明

  • 范围控制:通过getLastRow()获取表格最后一行数据,再用Math.min(lastDataRow, 10)确保只捕获前10行或所有已填充数据行。
  • 导出API使用:利用Google Sheets官方导出接口生成指定范围的PNG,需携带OAuth令牌(ScriptApp.getOAuthToken())确保访问权限。
  • 内嵌图片实现:将图片Blob转为Base64编码,通过data:image/png;base64,xxx的格式直接嵌入HTML正文,无需作为附件发送。
  • 格式切换:若需导出JPEG,只需将exportUrl中的format=png改为format=jpeg,同时修改imageSrc中的image/png为image/jpeg即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:50:26