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

修改Google Sheet脚本:将指定工作表以图片嵌入邮件正文

修改后的Google Sheet脚本:将工作表以图片嵌入邮件正文

以下是调整后的完整脚本,可实现将指定工作表转为图片并嵌入邮件正文:

function sendSheetTabAsImage() {
  var sheetName = 'sheetname'; // 替换为你的工作表名称
  var destinationEmail = 'name@domain.com'; // 替换为目标邮箱

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(sheetName);
  if (!sheet) {
    Logger.log('未找到指定工作表:' + sheetName);
    return;
  }

  // 构造导出图片的URL,可根据需求调整参数
  var exportParams = [
    'gid=' + sheet.getSheetId(),
    'format=png', // 导出格式改为PNG
    'size=legal', // 图片尺寸,可选值如letter/legal/tabloid等
    'gridlines=false', // 是否显示网格线,false为隐藏
    'printtitle=false', // 是否显示标题
    'sheetnames=false', // 是否显示工作表名称
    'fzr=false', // 是否冻结首行
    'fzc=false' // 是否冻结首列
  ].join('&');
  var url = 'https://docs.google.com/spreadsheets/d/' + ss.getId() + '/export?' + exportParams;

  var options = {
    method: 'GET',
    headers: {
      authorization: 'Bearer ' + ScriptApp.getOAuthToken()
    }
  };

  try {
    var result = UrlFetchApp.fetch(url, options);
    var imageContent = result.getContent();
    // 将二进制图片转为Base64编码,用于嵌入HTML正文
    var base64Image = Utilities.base64Encode(imageContent);

    var subject = '工作表图片:' + sheetName;
    // 纯文本备用内容(不支持HTML的邮箱会显示这个)
    var textBody = '请查看附件中的工作表图片。';
    // HTML正文,嵌入图片
    var htmlBody = '<p>请查看下方工作表图片:</p>' +
                   '<img src="data:image/png;base64,' + base64Image + '" alt="' + sheetName + '工作表图片" style="max-width:100%;" />';

    // 发送邮件,同时支持纯文本和HTML格式
    GmailApp.sendEmail(
      destinationEmail,
      subject,
      textBody,
      {
        htmlBody: htmlBody,
        // 可选:同时添加图片附件
        attachments: [{
          fileName: sheetName + '.png',
          content: imageContent,
          mimeType: 'image/png'
        }]
      }
    );
    Logger.log('邮件发送成功');
  } catch (e) {
    Logger.log('发送失败:' + e.toString());
  }
}

关键改动说明

  • 导出格式切换:将原脚本的format=pdf改为format=png,同时添加多个可选参数优化图片显示效果,可根据实际需求调整(比如开启网格线就把gridlines=false改为true)。
  • Base64编码转换:使用Utilities.base64Encode()将二进制图片内容转为Base64编码,这是HTML嵌入图片的标准方式。
  • HTML邮件构造:新增htmlBody参数,通过<img>标签将Base64图片直接嵌入邮件正文,同时保留textBody作为纯文本 fallback,兼容不同邮箱客户端。
  • 错误处理:新增工作表存在性检查和try-catch块,避免因找不到工作表或网络问题导致脚本崩溃。
  • 可选附件:保留了图片作为附件的选项,若不需要可删除attachments参数部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 02:20:22