Javascript 为什么在这段代码中values.length=2?

Javascript 为什么在这段代码中values.length=2?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,这是一段代码。我想知道为什么在文档中有1个标题和1行时values.length=2。该范围的高度为1,因为它的起点是第二行,所以为什么为2 function pushToCalendar() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('scheduler'); var lastRow = sheet.getLastRow(); var range = she

这是一段代码。我想知道为什么在文档中有1个标题和1行时values.length=2。该范围的高度为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');
}
函数pushToCalendar(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName('scheduler');
var lastRow=sheet.getLastRow();
var范围=sheet.getRange(2,1,最后一行,9);
var values=range.getValues();
var updateRange=sheet.getRange('scheduler!J1');
var calendar=CalendarApp.getCalendarById('rrgfkvm77h6gd6h0mcu1f701os@group.calendar.google.com')
setFontColor('red');
对于(var i=0;i
应该是

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++) {  
(var i=0;i

for(var i=0;i
getRange(行、列、numRows、numColumns)
lastRow'有多大?我认为values.length比2大得多……第一行数据中的9列都已填充了吗?不知道为什么要在values.length上加-1,因为您已经跳过了标题行。您可以在第二行获取数据。我会尝试更改它:
var range=sheet.getRange(2,1,lastRow,9);
to
var range=ss.getRange(2,1,sheet.getLastRow(),9);
如果您可以共享您正在使用的数据样本,那就太好了
for (var i = 0; i < values.length-1; i++) {  
for (var i = 0; i < values.length; i++) {