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

Google Apps Script需求:单元格非空时自动发送Sheet内容至指定邮箱

解决Google Apps Script自动导出Sheet并发送动态收件人邮件问题

完整修正代码

function checkAndExport() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheetName = 'Bookings List'; 
  var sheet = spreadsheet.getSheetByName(sheetName);
  
  // 检查B3单元格是否非空
  var checkCell = sheet.getRange('B3');
  var cellValue = checkCell.getValue();

  if (cellValue !== '') {
    // 1. 动态获取收件人邮箱(从I1单元格读取)
    var recipientEmail = sheet.getRange('I1').getValue();
    if (!recipientEmail) {
      SpreadsheetApp.getUi().alert('I1单元格未填写收件人邮箱');
      return;
    }

    // 2. 导出Sheet为CSV格式并生成Blob
    var dataRange = sheet.getDataRange();
    var data = dataRange.getValues();
    // 生成CSV内容,处理带逗号的单元格
    var csvContent = data.map(row => 
      row.map(cell => 
        typeof cell === 'string' && cell.includes(',') ? `"${cell}"` : cell
      ).join(',')
    ).join('\n');
    var csvBlob = Utilities.newBlob(csvContent, 'text/csv', `${sheetName}.csv`);

    // 3. 邮件配置与发送
    var subject = 'Bookings List 自动导出提醒';
    var body = '以下是最新的Bookings List数据附件,请查收。';

    var options = {
      name: 'Google Sheets 自动导出',
      attachments: [csvBlob]
    };

    // 发送邮件
    MailApp.sendEmail(recipientEmail, subject, body, options);
  }
}

// 可选:导出为XLSX格式的辅助函数
function exportAsXlsx(sheet, sheetName) {
  var spreadsheetId = sheet.getParent().getId();
  var url = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/export?format=xlsx&gid=${sheet.getSheetId()}`;
  var token = ScriptApp.getOAuthToken();
  var response = UrlFetchApp.fetch(url, {
    headers: {
      'Authorization': `Bearer ${token}`
    }
  });
  return response.getBlob().setName(`${sheetName}.xlsx`);
}

关键修改说明

  • 动态收件人处理:直接从Bookings List表的I1单元格读取邮箱地址,同时增加空值校验,避免因未填写邮箱导致发送失败。
  • CSV导出逻辑优化:移除原代码中错误的DocumentApp调用,直接通过Sheet数据生成合规的CSV字符串,自动处理带逗号的单元格(用双引号包裹),保证CSV格式正确。
  • 完善邮件发送:补全MailApp.sendEmail调用,将生成的CSV Blob添加到邮件附件,同时优化邮件主题和内容的可读性。
  • XLSX导出支持:如果需要XLSX格式,可调用exportAsXlsx函数获取XLSX Blob,替换邮件附件中的csvBlob即可。

使用注意事项

  1. 首次运行脚本时需完成权限申请,确保脚本拥有MailApp和UrlFetchApp的使用权限。
  2. 确认Bookings List表的I1单元格已正确填写收件人邮箱。
  3. 可通过Google Sheets的触发器功能,设置脚本定时执行(如每日固定时间),实现全自动化导出发送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:46:08