【发布时间】:2018-01-17 00:36:28
【问题描述】:
我正在尝试创建一个 Google Apps 脚本,该脚本将列出所有有效和存档的 Google 课堂课程,以及 ID、NAME、SECTION 和 COURSESTATE。一切正常,除了我不知道如何修复 .getRange 以便它将所有信息放入 Google 电子表格中。我得到的错误是“不正确的范围高度,是 4 但应该是 10”。如果我将 .getRange 简单地放在“A1:D1”中,它将覆盖每个类的内容,直到脚本完成,所以我知道脚本的其余部分有效,但我不知道如何放置范围以便可以列出所有类。我到现在为止是这样的:
function listCourses() {
var response = Classroom.Courses.list();
var courses = response.courses;
if (courses && courses.length > 0) {
for (i = 0; i < courses.length; i++) {
var course = courses[i];
var ids = course.id;
var title = course.name;
var sec = course.section;
var state = course.courseState;
var arr1 = [];
arr1.push(ids,title,sec,state);
var arr2 = [];
while(arr1.length) arr2.push(arr1.splice(0,1));
var s = SpreadsheetApp.getActiveSpreadsheet();
var sh = s.getSheetByName('LISTS');
for (var x=0; x<arr2.length; x++){
var newRow = sh.getLastRow() + 1;
// Here in the .getRange is where it gives me the error. A new row should be added for each Class until all the Classes (with the information mentioned above) are listed.
sh.getRange(1, 1, newRow, arr2[0].length).setValues(arr2);
}
}}}
【问题讨论】:
-
试试
sh.getRange(1,1,arr2.length,arr2[0].length).setValues(arr2)。消除最后一个循环并从您希望开始宽度的任何行开始一次加载它。我假设第 1 行。 -
这一行只将最后一个类放在电子表格中。我尝试了有无循环。最重要的是,当我需要按行(A1:D1、A2:D2 等)的信息时,它会将其放在 A1:A4 中。我不知道为什么,但是现在,如果我输入 for (var x=0; x
-
看看我刚刚发布的答案。
标签: google-apps-script google-sheets google-classroom