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

Google Apps Script需求:指定单元格触发时发送自定义命名PDF邮件

解决方案:Google Sheets触发PDF生成并邮件发送

核心修改点

  1. 新增E1单元格值触发逻辑,仅当值为"Ready"时执行操作
  2. 动态获取Make Quote工作表的C5值作为PDF文件名,C6值作为收件邮箱
  3. 添加邮件发送功能,将生成的PDF作为附件发送
  4. 优化PDF生成方式,支持指定导出工作表(可选)

完整代码实现

function handleQuoteReady() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const targetSheet = ss.getSheetByName('Make Quote');
  const triggerValue = targetSheet.getRange('E1').getValue();
  
  // 仅当E1为"Ready"时执行后续操作
  if (triggerValue !== 'Ready') return;
  
  // 获取关键配置值
  const pdfName = targetSheet.getRange('C5').getValue().trim();
  const sendTo = targetSheet.getRange('C6').getValue().trim();
  
  // 校验必填字段
  if (!pdfName || !sendTo) {
    SpreadsheetApp.getUi().alert('请确保C5(PDF文件名)和C6(收件邮箱)不为空!');
    return;
  }
  
  // 配置PDF导出参数(可按需调整)
  const exportParams = {
    format: 'pdf',
    sheetId: targetSheet.getSheetId(), // 仅导出Make Quote工作表,移除则导出整个表格
    fitToPage: true,
    printTitle: false,
    landscape: false
  };
  
  // 生成PDF Blob
  const exportUrl = `https://docs.google.com/spreadsheets/d/${ss.getId()}/export?${Object.entries(exportParams).map(([key, val]) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&')}`;
  const authToken = ScriptApp.getOAuthToken();
  const pdfResponse = UrlFetchApp.fetch(exportUrl, {
    headers: { 'Authorization': `Bearer ${authToken}` }
  });
  const finalPdfBlob = pdfResponse.getBlob().setName(`${pdfName} - ${Utilities.formatDate(new Date(), 'GMT-8', 'yyyy-MM-dd')}`);
  
  // 保存PDF到指定文件夹
  let targetFolder = DriveApp.getFoldersByName('Quote').next();
  // 可选:自动创建文件夹(如果不存在)
  // if (!targetFolder) targetFolder = DriveApp.createFolder('Quote');
  targetFolder.createFile(finalPdfBlob);
  
  // 发送邮件
  MailApp.sendEmail({
    to: sendTo,
    subject: `报价单:${pdfName}`,
    body: '您好,附件为您所需的报价单PDF文件。',
    attachments: [finalPdfBlob]
  });
  
  // 重置触发单元格,避免重复执行
  targetSheet.getRange('E1').setValue('Done');
}

配置步骤

  1. 打开Google Sheets的脚本编辑器(扩展 > Apps 脚本)
  2. 将上述代码替换原有代码,保存项目
  3. 设置可安装触发器:
    • 点击左侧「触发器」图标 → 「添加触发器」
    • 选择函数:handleQuoteReady
    • 事件源:「从电子表格」
    • 事件类型:「更改时」
    • 保存并完成授权流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:30:42