请求编写Google Sheets特定复选框触发的PDF邮件发送脚本
解决方案:通过复选框触发PDF导出并发送邮件
1. 准备触发用复选框
在电子表格的指定单元格(例如A1)插入复选框:选中目标单元格 → 菜单栏「插入」→「复选框」,建议在旁添加明确标签(如「发送PDF邮件」)。
2. 替换并更新脚本代码
将原有代码替换为以下版本,新增编辑触发逻辑,同时优化原代码结构:
// 表格编辑时触发的核心函数 function onEdit(e) { const triggerCell = "A1"; // 替换为你的复选框所在单元格(如B5) const activeSheet = e.source.getActiveSheet(); // 仅当目标复选框被勾选时执行后续操作 if (e.range.getA1Notation() === triggerCell && e.value === "TRUE") { sendExportedSheetAsPDFAttachment(); // 执行后重置复选框,避免重复触发 activeSheet.getRange(triggerCell).setValue(false); } } function sendExportedSheetAsPDFAttachment() { // 替换为你的表格PDF导出链接,保留format=pdf等必要参数 const exportUrl = "https://docs.google.com/spreadsheets/d/1FuTHRBQ0JRmo35kcrFBIhzjRXGTea3Xznek1lKE6xT0/export?format=pdf&scale=3"; const pdfBlob = getFileAsBlob(exportUrl); const pdfFileName = "ΘΕΛΩ ΕΧΩ ΕΘ.ΑΝΤΙΣΤΑΣΕΩΣ"; pdfBlob.setName(pdfFileName); const mailOptions = { to: "xxxxxx@gmail.com", // 替换为收件人邮箱 subject: pdfFileName, body: `Χαίρεται, Παρακαλώ βρείτε συννημένη τη σημερινή παραγγελία. Ευχαριστώ, Παραγγελίες`, name: "ΕΘ.ΑΝΤΙΣΤΑΣΕΩΣ", attachments: [pdfBlob] }; MailApp.sendEmail(mailOptions); } function getFileAsBlob(exportUrl) { const response = UrlFetchApp.fetch(exportUrl, { muteHttpExceptions: true, headers: { Authorization: `Bearer ${ScriptApp.getOAuthToken()}` } }); return response.getBlob(); }
3. 安装可安装触发器(必填)
由于简单onEdit触发器无MailApp和UrlFetchApp权限,需手动安装可安装触发器:
- 打开脚本编辑器 → 点击左侧「触发器」图标
- 点击「添加触发器」,设置以下参数:
- 运行函数:
onEdit - 事件源:「从电子表格」
- 事件类型:「编辑时」
- 运行函数:
- 点击「保存」,按提示完成权限授权。
4. 使用说明
在平板端打开表格后,勾选指定复选框即可自动触发PDF导出和邮件发送,执行完成后复选框会自动重置为未勾选状态。
内容的提问来源于stack exchange,提问作者Thodoris Sarikas
相关产品推荐
相关产品推荐

