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

请求:将谷歌表格两个工作表分别转CSV并添加至邮件附件

谷歌表格多工作表转CSV并作为邮件附件发送

我帮你修改了原脚本,直接实现把两个工作表转成CSV并作为邮件附件发送的功能,代码如下:

function sendSheetsAsCsv() {
  // 配置参数,替换成你自己的内容
  const sheetNames = ["工作表1", "工作表2"]; // 要转换的两个工作表名称
  const recipient = "收件人邮箱@example.com"; // 收件人邮箱
  const subject = "谷歌表格CSV附件"; // 邮件主题
  const body = "这是你要的两个工作表的CSV文件附件。"; // 邮件正文

  // 封装获取工作表CSV Blob的函数
  function getSheetAsCsv(sheetName) {
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const ssId = ss.getId();
    const sheet = ss.getSheetByName(sheetName);
    if (!sheet) throw new Error(`找不到名为${sheetName}的工作表`);
    
    const sheetId = sheet.getSheetId();
    const url = `https://docs.google.com/spreadsheets/d/${ssId}/export?gid=${sheetId}&format=csv`;
    const requestData = {
      method: "GET",
      headers: { "Authorization": "Bearer " + ScriptApp.getOAuthToken() }
    };
    
    const response = UrlFetchApp.fetch(url, requestData);
    // 返回CSV的Blob对象,用于邮件附件
    return response.getBlob().setName(`${sheetName}.csv`);
  }

  try {
    // 获取两个工作表的CSV Blob
    const attachments = sheetNames.map(name => getSheetAsCsv(name));
    // 发送邮件
    GmailApp.sendEmail(recipient, subject, body, { attachments: attachments });
    Logger.log("邮件发送成功!");
  } catch (error) {
    Logger.log(`发送失败:${error.message}`);
  }
}

关键说明

  • 先修改代码开头的配置参数:把工作表名称、收件人邮箱、邮件主题/正文换成你自己的内容
  • 封装的getSheetAsCsv函数负责把单个工作表转成CSV格式的Blob,直接作为邮件附件使用,无需再存入Drive
  • 第一次运行脚本时,会弹出授权提示,需要你授权脚本访问谷歌表格和Gmail的权限
  • 如果要添加更多工作表,直接在sheetNames数组里补充对应的名称即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:35:21