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

Google Sheets中实现表格内容逐行发送至邮件的技术求助

解决Google Sheets脚本邮件正文添加多行数据的问题

修改后的完整代码

function sendEmail() {
  // 获取当前表格的DueToday工作表
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DueToday");
  
  // 读取D1单元格的计数
  const todaydue = sheet.getRange("D1").getValue();

  if (todaydue > 0) {
    // 获取A3:D区域的所有数据
    const dataRange = sheet.getRange("A3:D");
    const allRows = dataRange.getValues();
    
    // 过滤掉空行(所有列都为空的行),并格式化每行内容
    const formattedRows = allRows
      .filter(row => row.some(cell => cell.toString().trim() !== "")) // 筛选非空行
      .map((row, index) => {
        // 行号从1开始计数(对应A3为第一行数据)
        const rowNumber = index + 1;
        // 将行内单元格内容用 | 分隔,空单元格显示为空字符串
        const rowContent = row.map(cell => cell.toString().trim()).join(" | ");
        return `Row ${rowNumber} | ${rowContent}`;
      });

    // 拼接邮件正文
    const emailAddress = 'mymail@gmail.com';
    const subject = `JRFgo² Reminder: ${todaydue} due today`;
    const message = formattedRows.join("\n"); // 每行单独换行显示

    // 发送邮件
    GmailApp.sendEmail(emailAddress, subject, message);
  }
}

关键修改说明

  • 范围调整:将原代码中单个单元格的范围B3:B3替换为A3:D,一次性获取目标区域的所有数据
  • 空行过滤:通过filter方法筛选出至少包含一个非空单元格的行,避免空行混入邮件内容
  • 行格式化:用map遍历每行数据,自动生成行号并将单元格内容按「Row X | 内容1 | 内容2 | ...」的格式拼接
  • 正文拼接:将所有格式化后的行用换行符\n连接,确保邮件内每行单独显示

额外修正

原代码中var message = '‣ '+result+ ;存在语法错误(多余的加号),修改后的代码直接使用格式化后的行数组拼接正文,彻底解决了这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:02:28