Google Apps脚本-SpreadsheetApp.openByUrl()没有错误,但未加载任何内容

时间:2019-03-21 17:36:26

标签: google-apps-script

如果我使用SpreadsheetApp.getActiveSpreadsheet()可以正常工作,但是我无法使用基于分钟的触发器来运行此脚本,因为它没有活动的电子表格。 我尝试使用SpreadsheetApp.openByUrl(),该脚本在脚本编辑器中手动运行,并且在基于分钟的触发器中也没有错误。

我的问题是应该输出到我的实际工作表上的单元格没有更新。我认为这也不是将电子邮件标记为已读,但我已经不断收到很多邮件,以至于目前难以检查。

https://jsfiddle.net/29Ls3me4/1/

function myFunction() {

  //var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ss = SpreadsheetApp.openByUrl("https://docs.google*****************************/edit");
  var sheet = ss.getSheetByName("sheet1");

  var threads = GmailApp.search ('label:unread "Thank you for your order!" -fwd: -re: -failure'); //search string

  for (var i=0; i<threads.length; i++)
  {
    var messages = threads[i].getMessages();

    for (var j=0; j<messages.length; j++)
    {
      var msg = messages[j].getPlainBody();
      var sub = messages[j].getSubject();
      var dat = messages[j].getDate();
      var to = messages[j].getTo();

      var dateString =
    dat.getUTCFullYear() + "/" +
    ("0" + (dat.getUTCMonth()+1)).slice(-2) + "/" +
    ("0" + dat.getUTCDate()).slice(-2);

      var name = messages[j].getSubject();
      var invoicenumber = name.match(/\d/g);

      if(invoicenumber == null){
        invoicenumber = "null";
      } else {
        invoicenumber = invoicenumber.join("");
      }

      ss.appendRow([invoicenumber, dateString, to, sub, msg])
    }
     threads[i].markRead();
     //threads[i].markUnread();
  }
}

1 个答案:

答案 0 :(得分:0)

好的简单编码眼球

ss.appendRow()

应该已经

sheet.appendRow()