Я считаю, что ваша цель следующая.
- Вы хотите поместить значения
course.name, course.alternateLink, course.enrollmentCode, course.courseState
каждого courses[i]
в созданную электронную таблицу, изменив свой скрипт Google Apps.
Для этого как насчет этого ответа?
Пункты модификации:
SpreadsheetApp.create
возвращает объект Spreadsheet. Таким образом, вы можете использовать это. - Когда значения помещаются в электронную таблицу для l oop, стоимость процесса будет высокой. Итак, в этом ответе я хотел бы подготовить массив и поместить значения в массив для l oop. И после l oop значения помещаются в электронную таблицу с использованием массива.
Когда указанные выше точки отражаются в вашем скрипте, он становится следующим:
Изменено скрипт:
Пожалуйста, измените ваш скрипт следующим образом.
От:
SpreadsheetApp.create(spreadsheet, rows, columns)
var currentfile = DriveApp.getFilesByName(spreadsheet);
while (currentfile.hasNext()) {
var file = currentfile.next();
var sheetid = file.getId();
}
var sheet = SpreadsheetApp.openById(sheetid)
var response = Classroom.Courses.list(optionalArgs);
var courses = response.courses;
if (courses && courses.length > 0) {
for (i = 0; i < courses.length; i++) {
var course = courses[i];
Logger.log(course.name, course.alternateLink, course.enrollmentCode, course.courseState);
}
} else {
Logger.log('No courses found.');
}
Кому:
var spreadsheet = SpreadsheetApp.create(spreadsheet, rows, columns); // Modified
var sheet = spreadsheet.getSheets()[0]; // Added
var response = Classroom.Courses.list(optionalArgs);
var courses = response.courses;
if (courses && courses.length > 0) {
var values = []; // Added
for (i = 0; i < courses.length; i++) {
var course = courses[i];
values.push([course.name, course.alternateLink, course.enrollmentCode, course.courseState]); // Added
}
sheet.getRange(1, 1, values.length, values[0].length).setValues(values); // Added
} else {
Logger.log('No courses found.');
}
- В этом случае значения помещаются на 1-ю вкладку созданной электронной таблицы .
Ссылки: