将电子邮件正文变量的每一行粘贴到电子表格的一行中

时间:2018-06-26 03:57:42

标签: google-apps-script

我有一个脚本可以成功提取电子邮件的正文:

var msgBody = messages[m].getBody();

此消息包含650多行信息,我想将每一行文本放在同一列的不同行中(例如,如果将其粘贴到单元格H1中,它将起作用。运行以下命令:

listserveSheet.getRange("H1").setValues(msgBody)

它自然会将所有650余行信息放在该单元格中,而不是从H1到H652单元格(或任何给定电子邮件的最后一个单元格)。

有什么主意如何更改我的变量以使其能够按照我想要的方式设置值?我在想也许循环遍历变量并分别设置每个值。但是我不知道每次循环时如何从变量中拉出一行。

1 个答案:

答案 0 :(得分:0)

由于Suhail在上面的评论中提出了建议,所以我找到了答案的方法。

var msgBody = messages[m].getBody();
var dest = msgBody.split("\n");

拆分是否很好。然后,我可以以此将各个值设置到各个单元格中。

for (var i =0; i < dest.length; i++) {
  listserveSheet.getRange("H"+ (i+1)).setValue(dest[i]);
}

我曾尝试使用setValues操作,但是显然,我没有涉足2D范围业务。我怀疑如果我确实了解2d范围,则在更大范围内使用setValues,而不是在单元格上循环setValue会更快。这是我尝试过的方法(以及其他几种无效的排列方式:

listserveSheet.getRange(1,8,dest.length,dest[0].length).setValues(dest);

再次感谢您的帮助

相关问题