0

我对这种编程很陌生。为了开始代码,我遵循了一些教程并在这个网站上搜索了信息。

我想建立一个系统,让我自动从我的谷歌日历中检索信息。我想从我的日历中获得的信息是:名称事件、开始时间、结束时间、位置、描述、活动客人和那里的状态。

我做了以下代码,我被卡住了。我得到了我的客人,但没有身份。我想要第 6 列中已确认的客人电子邮件地址,并希望第 7 列中拒绝的人。

问题不是我找不到此代码的正确方式/IF 语句。有人告诉我使用;getGuestStatus() 在 if 语句中决定将电子邮件地址附加到哪个字符串/数组。

但我不明白该怎么做。有没有人可以帮助我。

正如您在我的代码中看到的那样,我在电子表格中纠正了我的信息。

function getEvents() {

  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cal = CalendarApp.getCalendarById("###");    "my calendar id is normaly here"
  var events = cal.getEvents(new Date("06/01/2020 12:00 AM"), new Date("06/30/2030 12:00 AM"));

  var lr = ss.getLastRow();
  ss.getRange(2,1,lr-1,6).clearContent();

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

    var title = events[i].getTitle();
    var sd = events[i].getStartTime();
    var ed = events[i].getEndTime();
    var loc = events[i].getLocation();
    var des = events[i].getDescription();
    var guests = events[i].getGuestList();
    var guestEmails = "";
    for (var j = 0; j < guests.length; j++){
    var guest = guests[j].getEmail();
    guestEmails += guest+", ";
    Logger.log(guest)

    }
    ss.getRange(i+2, 1).setValue(title);
    ss.getRange(i+2, 2).setValue(sd);
    ss.getRange(i+2, 2).setNumberFormat("dd/mm/yyyy /hh:mm");
    ss.getRange(i+2, 3).setValue(ed);
    ss.getRange(i+2, 3).setNumberFormat("dd/mm/yyyy /hh:mm");
    ss.getRange(i+2, 4).setValue(loc);
    ss.getRange(i+2, 5).setValue(des);
    ss.getRange(i+2, 6).setValue(guestEmails);

    }

}

非常感谢任何花时间阅读本文并可以帮助我的人。

阿尔弗雷多

4

1 回答 1

0

客人状态可以通过以下方式检索guests[j].getGuestStatus();

您可以创建一个guestInfo包含guestEmail和的组合字符串guestStatus

样本:

function getEvents() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cal = CalendarApp.getCalendarById("primary")
  var events = cal.getEvents(new Date("04/04/2020 12:00 AM"), new Date("05/05/2020 12:00 AM"));
  var lr = ss.getLastRow();
  ss.getRange(2, 1, lr - 1, 6).clearContent();
  for (var i = 0; i < events.length; i++) {
    var title = events[i].getTitle();
    var sd = events[i].getStartTime();
    var ed = events[i].getEndTime();
    var loc = events[i].getLocation();
    var des = events[i].getDescription();
    var guests = events[i].getGuestList();
    var guestInfo = "";
    for (var j = 0; j < guests.length; j++) {
      var guest = guests[j].getEmail();
      var status = guests[j].getGuestStatus();
      Logger.log(guest);
      guestInfo += guest+": " + status + ", ";
    }
    ss.getRange(i + 2, 1).setValue(title);
    ss.getRange(i + 2, 2).setValue(sd);
    ss.getRange(i + 2, 2).setNumberFormat("dd/mm/yyyy /hh:mm");
    ss.getRange(i + 2, 3).setValue(ed);
    ss.getRange(i + 2, 3).setNumberFormat("dd/mm/yyyy /hh:mm");
    ss.getRange(i + 2, 4).setValue(loc);
    ss.getRange(i + 2, 5).setValue(des);
    ss.getRange(i + 2, 6).setValue(guestInfo);

  }
}
于 2020-04-23T10:12:40.457 回答