本文教你修改 google apps script 代码,将邮件主题从固定文本改为读取指定工作表中 a2 和 b6 单元格的值,实现个性化、动态邮件标题,无需 javascript 基础。
本文教你修改 google apps script 代码,将邮件主题从固定文本改为读取指定工作表中 a2 和 b6 单元格的值,实现个性化、动态邮件标题,无需 javascript 基础。
在 Google Sheets 中通过脚本发送 Excel 文件时,默认邮件主题是硬编码的(如 "Google Sheet to Excel")。若希望主题更具业务意义(例如包含项目名称、日期或客户编号),可直接从表格中读取单元格值动态生成。以下是完整、安全、可直接运行的优化方案:
function getGoogleSpreadsheetAsExcel() { try { var ss = SpreadsheetApp.getActive(); // ⚠️ 请务必将 "Sheet1" 替换为实际存放 A2 和 B6 数据的工作表名称(区分大小写) var sheet = ss.getSheetByName("Sheet1"); if (!sheet) throw new Error("工作表 'Sheet1' 未找到,请检查名称是否正确"); // 读取 A2 和 B6 的值,并拼接为主标题(自动处理空值) var subjectPart1 = sheet.getRange("A2").getValue(); var subjectPart2 = sheet.getRange("B6").getValue(); var subject = [subjectPart1, subjectPart2].filter(String).join(" ").trim(); if (!subject) subject = "无主题"; // 防止空主题导致邮件异常 // 生成 Excel 导出 URL var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + ss.getId() + "&exportFormat=xlsx"; var params = { method: "get", headers: { "Authorization": "Bearer " + ScriptApp.getOAuthToken() }, muteHttpExceptions: true }; var blob = UrlFetchApp.fetch(url, params).getBlob(); blob.setName(ss.getName() + ".xlsx"); // 发送邮件(替换为你自己的收件邮箱) MailApp.sendEmail( "[email protected]", subject, "此邮件附带当前表格导出的 Excel 文件。", { attachments: [blob] } ); Logger.log("邮件已成功发送,主题:" + subject); } catch (error) { Logger.log("发送失败:" + error.toString()); Browser.msgBox("错误:邮件发送失败,请查看日志。"); }}
? 小技巧:如需加入时间戳增强可追溯性,可将 subject 行改为:
var subject = [subjectPart1, subjectPart2, Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd")].filter(String).join(" ");
现在,只需编辑 A2 和 B6 单元格,每次点击按钮发送的邮件主题便会自动更新——真正实现“所见即所得”的自动化体验。