如何用Google App Script提取表格有效命令并邮件发送清理后的TXT文件?
用Google App Script自动提取有效改价命令并生成邮件发送txt文件
核心实现逻辑
直接遍历表格数据行,根据内容筛选出有效改价命令(排除品类标题行、含NO DATA的行),将整理后的命令拼接成文本内容,生成.txt文件后通过邮件发送到指定邮箱,彻底绕开隐藏行复制的问题。
完整脚本代码
function sendCleanedCommands() { // 1. 配置参数,根据你的表格实际情况修改 const SHEET_NAME = "Sheet1"; // 你的工作表名称 const COMMAND_COLUMN = 2; // 改价命令所在的列号(A=1,B=2,以此类推) const START_ROW = 2; // 数据起始行(如果第一行是表头,就设为2) const RECIPIENT_EMAIL = "your-email@example.com"; // 接收邮件的邮箱 const EMAIL_SUBJECT = "最新整理的改价命令"; // 2. 获取表格数据 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME); const lastRow = sheet.getLastRow(); const dataRange = sheet.getRange(START_ROW, COMMAND_COLUMN, lastRow - START_ROW + 1); const commandValues = dataRange.getValues(); // 3. 筛选有效命令 const cleanedCommands = []; for (const row of commandValues) { const command = row[0].trim(); // 跳过空行、NO DATA行、品类标题(可根据实际标题特征调整判断条件) if (command && command !== "NO DATA" && !command.includes("品类")) { cleanedCommands.push(command); } } // 4. 生成txt文件内容 const fileContent = cleanedCommands.join("\n"); const blob = Utilities.newBlob(fileContent, "text/plain", "改价命令清单.txt"); // 5. 发送邮件 MailApp.sendEmail({ to: RECIPIENT_EMAIL, subject: EMAIL_SUBJECT, body: "附件是整理好的有效改价命令,可直接复制到数据库执行。", attachments: [blob] }); // 执行完成提示 SpreadsheetApp.getUi().alert("改价命令已整理并发送到你的邮箱!"); }
代码说明
- 参数配置部分:需根据自身表格结构调整工作表名称、命令所在列号、起始行和接收邮箱。如果品类标题有统一特征(比如包含“分类”“组别”等关键词),可修改判断条件里的关键词,确保精准过滤。
- 数据筛选逻辑:直接读取单元格文本内容,跳过空值、
NO DATA和品类标题行,只保留有效命令,不受行隐藏状态影响。 - 文件生成与邮件发送:用
Utilities.newBlob生成纯文本格式的.txt文件,再通过MailApp发送带附件的邮件,无需手动复制处理。
使用步骤
- 打开目标Google Sheets表格,点击顶部菜单栏「扩展程序」→「App Script」,进入脚本编辑器。
- 删除默认的
myFunction代码,粘贴上述完整脚本。 - 修改脚本开头的配置参数,确保与你的表格匹配。
- 点击编辑器顶部的运行按钮,首次运行会触发权限授权,按提示完成授权即可。
- 运行成功后,你会收到包含整理好的改价命令txt文件的邮件。
还可以设置时间驱动触发器,让脚本定时自动执行(比如每天固定时间),实现完全自动化操作。
内容的提问来源于stack exchange,提问作者DevDucky
相关产品推荐
相关产品推荐

