修改现有的Google日历活动

时间:2015-05-11 18:47:22

标签: javascript google-sheets google-calendar-api

以下是我为修改现有日历活动而创建的脚本。我的目标是更改说明,使其从“注册”按钮更改为“注册已关闭”。该脚本的工作原理是它将添加访客,但是当超过最大注册人数时,它不会将描述更新为新描述。我没有包含详细说明calProperties的脚本部分。

function modifyEvents() {
    var ss = SpreadsheetApp.getActive();
    var sheet = ss.getSheetByName("Events");
    var sheetR = ss.getSheetByName("Registration");
    var headerRows = 1;
    var dataRange = sheet.getDataRange();
    var data = dataRange.getValues();
    for (var i = 1; i in data; ++i) {
        if (i << headerRows) {
            var row = data[i];
            var room = row[5];
            var description = row[6];
            var agegroup = row[7];
            var registration = row[8];
            var max = row[10];
            var calname = row[14];
            var eventId = row[15];
            var registrants = row[17];
            var calendarName = sheet.getRange(headerRows + i, 15).getValue();
            var calendarId = calProperties.getProperty(calendarName);
            var cal = CalendarApp.getCalendarById(calendarId);
            var id = sheet.getRange(headerRows + i, 16).getValue();
            var event = cal.getEventSeriesById(id);
            var email = sheetR.getRange(headerRows + i, 8).getValue();
            row[10] = sheet.getRange(headerRows + i, 11).getValue();
            row[17] = sheet.getRange(headerRows + i, 18).getValue();
                if (registration === 'Y' && registrants >> max) {//7.1 line 25
                    var description1 = (description + '\n' + '\n' + room + '\n' + '\nEvent Type: ' + calname + '\n' + '\nAge Group: ' + agegroup)
                    var descriptionHTML = '\n <div id="registration_button" ><a style="text-align:right;color:white!important;text-decoration:bold;background-color:rgb(209,72,54);background-image:-webkit-linear-gradient(top,rgb(221,75,57),rgb(209,72,54));color:#ffffff;border:1px solid rgba(0,0,0,0);border-radius:2px;display:inline-block;font-size:12px;font-weight:bold;height:27px;line-height:27px;padding:0px 20px 0px 20px;text-align:center;text-transform:uppercase;white-space:nowrap;text-decoration:none;color:white" target="_blank">Registration Closed</a>';
                    var descriptionRegistration = (description1 + '\n' + '\n' + descriptionHTML);
                    event.setDescription(descriptionRegistration);
                }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

替换(i << headerRows)

(i < headerRows)

并替换registration === 'Y' && registrants >> max

registration === 'Y' && registrants > max

>>=之间的差异大于,大于或等于和:

>> <<左右按位操作数,你显然不想要

<< left shift向左移位二进制表示b(&lt; 32)位,从右移零。

>> Sign-propagating right shift向左移位二进制表示b(&lt; 32)位,丢弃已移位的位。

你想要的是>大于“如果左操作数大于右操作数,则大于运算符返回true。”

<小于“如果左操作数小于右操作数,则小于运算符返回true。”