【发布时间】:2018-12-19 11:17:42
【问题描述】:
我制作了一个脚本,用于从谷歌表格发送批量电子邮件。 但是我偶然发现了一个问题。 出于某种原因,我无法将下面的数据放在一起。
var open = row[1] + row[2] + row[3]
您会在下面找到一份 google 表格列表。 我在 ID 号上使用 vlookup 将该数据插入到学生/邮件地址的消息旁边。
在我的消息中,我有一个介绍(你好学生等) 之后,他们会得到(或应该得到)他们的积分列表。
var message = introduction + '\n\n' + open + '\n\n\n' + ending; // setup of the mail
但是,当他们收到邮件时,它看起来像这样
Sarah
Sarah
Chemistry
Maths
9,5
6,0
有没有办法在每个旁边获取这些数据?
喜欢 \n 的新段落。
提前致谢
编辑: 它应该是这样的。
Sarah Maths 9,5
Sarah Chemistry 6,0
编辑2:
我用来合并列的宏
function merge_col() {
var ss = SpreadsheetApp.getActive().getSheetByName('Open invoices');
var data = ss.getDataRange().getValues();
var header = data.shift();
var col1 = data[1][0];
var col2 = '';
var col3 = '';
var col4 = '';
var dataSheet2 = [header];
for(var i=0 ; i<data.length ; i++){
Logger.log(data[i][0]+' - '+col1+' - '+data[i][2])
if(col1==data[i][0]){
col1 = data[i][0];
col2+=data[i][1]+'\n';
col3+=data[i][2]+'\n';
col4+=data[i][3]+'\n';
}else{
dataSheet2.push([col1,col2,col3,col4]);
var col1 = data[i][0];
col2 = data[i][1]+'\n';
col3 = data[i][2]+'\n';
col4 = data[i][3]+'\n';
}
}
dataSheet2.push([col1,col2,col3,col4]);
Logger.log(dataSheet2);
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet3');
sheet2.clear();
sheet2.getRange(1, 1, dataSheet2.length, dataSheet2[0].length).setValues(dataSheet2);
}
【问题讨论】:
-
这是因为每个单元格的内容都包含一个换行符。您将需要细分具有多行内容的每个单元格,并更新您的处理以添加前半部分以及同一行中的任何整体。
-
@TheMaster :我在帖子中添加了一个编辑,它应该看起来像 tehhowch 的评论是正确的。有没有办法将这 3 行的范围作为表格复制到邮件中?
-
是的,细分每个单元格,在内部换行符处拆分字符串内容。如果您的数据结构没有内部换行符,而是为每个重复的类 ID 设置单独的行,您会更轻松。
-
@tehhowch:我对细分单元格的问题是我只得到第一个值。如果我要搜索莎拉,我只会得到她的数学数字。如果我搜索 Sarah,我应该将她的所有号码和该表复制到 Gmail 中。
-
@TheMaster 最初划分单元格1 个 ID 将只有 1 行而不是多行
标签: google-apps-script google-sheets gmail