setValues不适用于Google Apps脚本中的数组

时间:2015-11-02 08:27:27

标签: javascript arrays google-apps-script

我是google apps script的新用户,我想为电子表格创建一个脚本,我希望将发送给我的其他人的电子邮件地址存储到我的电子表格中。我push发送到数组的所有电子邮件,并使用该数组存储在电子表格中。出于某种原因,虽然我通过日志查看了所有电子邮件,但.setValues()无效。这是我的代码,

      var n=threads.length;
      var messages=thread.getMessages();
      var getfrom = 0;
      var allMails = [];
      for (var i=0; i<n; i++)
      {
         for (var j=0; j<messages.length; j++)
         {
            var message=messages[j];
            getfrom = message.getFrom();
            var first_name = getfrom.substring(0, getfrom.indexOf(" "));
            var last_name = getfrom.substring(getfrom.indexOf(" ")+1, getfrom.indexOf(" <"));
            var email_address = 0;
            if (first_name == '' && last_name == '')
            {
               email_address = getfrom;
            } else {
               email_address = getfrom.substring(getfrom.indexOf("<")+1, getfrom.indexOf(">"));
            }
          }
          allMails.push(email_address);
      }
      Logger.log(allMails);
      sheet1.getRange(2, 3, n, 1).setValues(allMails);
      Browser.msgBox("Operation complete");

如何在电子表格中设置allMails[]数组中的所有值?非常需要这个帮助。感谢。

1 个答案:

答案 0 :(得分:2)

setValues() needs a "two dimensional" array,与长度相等的数组一样。

您希望将电子邮件作为单独的行提供给工作表,因此请尝试将电子邮件地址作为单个元素数组推送到数组中,即:

allMails.push([email_address]);