Google Script技术问询:分割带分隔符文本并追加行
解决Google Script追加行时分割带分隔符的邮件正文问题
没问题,我来帮你搞定这个需求——你现在的脚本是把整个邮件正文作为一列追加到表格,想要把带分隔符的正文拆成多列,对吧?
核心思路就是用JavaScript的split()方法把正文按指定分隔符拆分成数组,再把日期、发件人和拆分后的内容合并成一个完整的行数据数组,最后用appendRow()写入表格。
修改后的完整脚本
function readMail() { // 获取收件箱最新的1条邮件线程及其中的第一封邮件 var thread = GmailApp.getInboxThreads(0, 1)[0]; var message = thread.getMessages()[0]; // 变量名改成单数更贴合单封邮件的场景 // 提取邮件关键信息 var emailDate = message.getDate(); var emailSender = message.getFrom(); var emailBody = message.getPlainBody(); // ******** 这里替换成你实际的分隔符 ******** // 比如逗号用","、换行用"\n"、制表符用"\t"、分号用";" var separator = ","; // 按分隔符拆分正文,得到内容数组 var splitBodyParts = emailBody.split(separator); // 可选:过滤掉拆分后可能出现的空字符串(比如分隔符前后有空格的情况) splitBodyParts = splitBodyParts.filter(part => part.trim() !== ""); // 合并所有要写入的列:日期 + 发件人 + 拆分后的正文各部分 var rowToAppend = [emailDate, emailSender].concat(splitBodyParts); // 写入谷歌表格 var targetSpreadsheet = SpreadsheetApp.openById('你的表格ID'); var targetSheet = targetSpreadsheet.getSheetByName('你的工作表名称'); targetSheet.appendRow(rowToAppend); }
几个关键注意点
- 分隔符要准确:一定要根据你邮件正文里实际的分隔符号来设置
separator变量,比如如果正文是用竖线|分隔的,就改成var separator = "|"。 - 处理空内容:如果邮件正文里有连续的分隔符或者分隔符前后有空格,拆分后会出现空字符串,用
filter()方法可以轻松过滤掉这些无效内容。 - 表格列数适配:确保你的工作表有足够的列数来容纳拆分后的内容,
appendRow()会自动扩展列,但提前规划好列结构会更规范。
内容的提问来源于stack exchange,提问作者T O
相关产品推荐
相关产品推荐

