这是一段代码。我想知道为什么values.length = 2当我在文档中有1个标题和1行时。范围的高度为1,因为它的开始是第二行,所以为什么2?
function pushToCalendar() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('scheduler');
var lastRow = sheet.getLastRow();
var range = sheet.getRange(2,1,lastRow,9);
var values = range.getValues();
var updateRange = sheet.getRange('scheduler!J1');
var calendar = CalendarApp.getCalendarById('rrgfkvm77h6gd6h0mcu1f701os@group.calendar.google.com')
updateRange.setFontColor('red');
for (var i = 0; i < values.length-1; i++) {
if (values[i][4] != '●') {
var newEventTitle = values[i][0];
var newEvent = calendar.createEvent(newEventTitle,
new Date(values[i][7]),
new Date(values[i][8]));
var newEventId = newEvent.getId();
sheet.getRange(i+2,6).setValue('●');
sheet.getRange(i+2,7).setValue(newEventId);
}
}
updateRange.setFontColor('white');
}
答案 0 :(得分:1)
var range = sheet.getRange(2,1,lastRow,9);
应该是
var range = sheet.getRange(2,1,lastRow - 1,9);
// -1 being the number of header rows
从行数中删除标题行。第三个参数表示要包含在范围内的行数,而不是结束行(lastRow)。
您必须从lastRow中减去任何不应包含的数据行。
然后您需要更改
for (var i = 0; i < values.length-1; i++) {
要
for (var i = 0; i < values.length; i++) {