将Google表格同步到日历应用脚本

时间:2019-09-20 10:14:27

标签: google-apps-script google-sheets google-calendar-api

我具有以下脚本,并始终收到错误“找不到方法createEvent(number,string,string)”。我不知道怎么了。有什么想法吗?

function createCalendarEvent() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;
  var numRows = sheet.getLastRow();
  var numColumns = sheet.getLastColumn();
  var dataRange = sheet.getRange(startRow, 1, numRows-1, numColumns);
  var data = dataRange.getValues();
  var complete = "Done";

    for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var aname = row[2]; //Agent
    var cname = row[3]; //Client Name
    var country = row[4]; //Client Country
    var phone = row[5]; //Phone Number
    var deposit = row[6]; //Type of Deposit
    var ewallet = row[7]; //Processor/eWallet
    var method = row[8]; //Deposit Method
    var amount = row[9]; //Amount/Percent
    var date = new Date(row[10]);  //Date of Next Contact
    var target = row[12]; //Target Amount
    var history = row[13]; //Deposit History incl. dates
    var currency = row[14]; //Currency
    var comments = row[15]; //Comments
    var stime = new Date (row[17]);
    var etime = new Date (row[18]);
    var added = row[19]; //Added to calendar

      if (added != complete) {
      var currentCell = sheet.getRange(startRow + i, numColumns);
      var event = CalendarApp.getDefaultCalendar().createEvent(cname, stime, etime);

      currentCell.setValue(complete)};
}
}

1 个答案:

答案 0 :(得分:1)

此错误意味着它找不到该方法,可能是因为您对函数createEvent(String,Date,Date)使用了错误的参数(请参见文档here)。

您正在使用功能createEvent(number,String,String),该功能不存在。

您的第一个变量cname应该转换为字符串,并且您还会误解的是第二个和第三个参数是字符串,而它们应该是日期。 正确的解决方案是将starttimeendtime转换为日期,这取决于字符串日期的格式。