【问题标题】:Google Drive spreadsheet script issueGoogle Drive 电子表格脚本问题
【发布时间】:2014-01-09 22:43:28
【问题描述】:

我从网络上的某个地方复制了这个函数。我的目标是将我的 gmail 帐户中专门标记的电子邮件的正文导入到谷歌电子表格中。虽然我在编码方面并非完全无能,但我对这些东西并不熟悉。

一些可能相关的细节:我尝试导入的每封电子邮件都不是对话,它们是收到的一封电子邮件,没有回复,也没有线程中的早期消息。我希望将每封电子邮件的整个正文放在电子表格的单个单元格中。

事实上,我的电子表格中只有主题。我怎样才能让它把尸体也带来呢?我觉得它被放置在数组中,但是在循环 setValue 时它被跳过了。

亲爱的,伙计们!

代码:

function getMessagesWithLabel() {
 var destArray = new Array();
  var threads = GmailApp.getUserLabelByName('abc').getThreads(1,10);

  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].getSubject());
           }
  destArray.push(destArrayRow);           
        }
Logger.log(destArray);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
if(ss.getLastRow()==0){sh.getRange(1,1).setValue('getMessagesWithLabel() RESULTS')};
sh.getRange(ss.getLastRow()+1,1,destArray.length,destArray[0].length).setValues(destArray)
}

【问题讨论】:

  • 我建议您编辑您的问题以明确您的实际问题是什么,或者关闭它并根据您面临的实际问题创建一个新问题。
  • 完成。希望这能帮助我找到答案。

标签: javascript excel scripting google-apps-script typeerror


【解决方案1】:

您没有在脚本中的任何地方使用 .getBody() 吗?在这种情况下,我会将每条消息存储为一个对象,主题和正文作为单独的值:

var msg = threads[n].getMessages();
var contentArray = [];

for(var i = 0; i < msg.length; i++){

  var obj = {
    subject: msg[i].getSubject(),
    body: msg[i].getBody()       
  };

  contentArray.push(obj);

}

然后可以使用以下符号迭代这些值:

console.log(contentArray[0].subject);
console.log(contentArray[0].body);

【讨论】:

    猜你喜欢
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多