我有一个工作表脚本,它捕获带有其中一个表的特定电子邮件的正文。到目前为止,这一直工作得很好,但我现在已经达到了单个单元格问题的50000个字符限制。我用的是:
= '(分裂(C1, CHAR(10),真的))
,以便逐行拆分内容,所以现在需要编写此脚本,以便将电子邮件正文一行一行地传递到工作表中。
我最好的方法是什么?
谢谢
最终我自己找到了答案,感谢这里的精英回应者(Serge/Mogsdad/Sandy等人),他们对之前问题的回答提供了所有线索。首先使用Serge的getMessage代码。我知道,比使用appendRow更好的方法,但是有些方法不能处理格式不佳的html内容(例如,将行放入数组会导致关于范围宽度的错误)。我的脚本只调用一个电子邮件,最近的一个选定的标签。
下面是覆盖它的函数:
function getMessageWithLabel() {
var destArray = new Array();
var threads = GmailApp.getUserLabelByName('<GMailLabel>').getThreads(0,1);
for(var n in threads){
var msg = threads[n].getMessages();
var destArrayRow = new Array();
destArrayRow.push('thread has '+threads[n].getMessageCount()+' messages');
for(var m in msg){
destArrayRow.push(msg[m].getBody());
}
destArray.push(destArrayRow);
}
//open spreadsheet and set sheet for appending data
var ss = SpreadsheetApp.openById('<Google Spreadsheet ID>');
var sh5 = ss.getSheets()[4];
//get number of lines in content
var lines = destArrayRow[0].split('n');
var length = lines.length;
//appendRow for each line in content
for (var i = 0; i <= length; i++) {
sh5.appendRow([lines[i]]);
}
}