Google脚本写入表格

问题描述 投票:1回答:1

我有以下脚本可提取有关Google教室的信息。我似乎在砸墙撞头-如何将course.data写入正在创建的google工作表中?非常感谢

/**
 * Lists 100000 course names and ids.
 */
function listCourses() {
  var rows = 100000
  var columns = 5
  var date = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy")
  var spreadsheet = "ScriptClassroomCodes "+date

  var oldfiles = DriveApp.getFilesByName(spreadsheet);
  while (oldfiles.hasNext()) {
    var oldfile = oldfiles.next();
    oldfile.setTrashed(true);
}
  var optionalArgs = {
    pageSize: rows
  };
  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.');
  }
}
google-apps-script google-sheets google-classroom
1个回答
0
投票

我相信您的目标如下。

  • 您想通过修改Google Apps脚本将每个course.name, course.alternateLink, course.enrollmentCode, course.courseStatecourses[i]的值放入创建的电子表格中。

为此,这个答案如何?

修改点:

  • SpreadsheetApp.create返回电子表格对象。因此您可以使用它。
  • 将这些值放在for循环中的电子表格中时,过程成本会很高。因此,在此答案中,我想准备一个数组并将值放入for循环中的数组。在for循环之后,使用数组将值放入电子表格。

当上述几点反映到您的脚本时,它将变成如下。

修改的脚本:

请按如下所示修改脚本。

从:
  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.');
}
  • 在这种情况下,值将放置在创建的电子表格的第一个选项卡上。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.