Javascript 为什么在这段代码中values.length=2?
这是一段代码。我想知道为什么在文档中有1个标题和1行时values.length=2。该范围的高度为1,因为它的起点是第二行,所以为什么为2Javascript 为什么在这段代码中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
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);
tovar 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++) {