Как создать одну электронную таблицу для каждой строки, которая также импортирует всю эту строку в Google Apps Script? - PullRequest
0 голосов
/ 21 октября 2018

Я учитель, желающий создавать индивидуальные электронные таблицы для студентов на основе оценки.Студенты будут перечислены в столбце A, и я хочу, чтобы каждый из них получал информацию из столбца A в столбец G. Кроме того, они также должны получать заголовки для каждого столбца (строки с 1 по 3).

В идеале сценарий должен также иметь функцию электронной почты (отправить идентификатор документа по адресу, указанному в столбце B или что-то в этом роде).

Прямо сейчас я нашел сценарий, который создает электронную таблицу для каждогостудент, но я не совсем уверен, как заставить сценарий получать соответствующую информацию с того же листа.

 function onOpen() {
    var ui = SpreadsheetApp.getUi();
    var menu = ui.createMenu('ADMIN');
    var item = menu.addItem('Create student copies', 'createStudents');
    item.addToUi();
  };

 function createStudents() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName('Fullclass');
    var range = sheet.getRange('A:A');
    var values = range.getValues();
    var df = DriveApp.getFolderById('1PgMa9Ow8xS      Zs6_kIuyw9mSHp');

 for(var i=0;i<values.length;i++) {
    if( values[i][0] != '' ) {
    var newSS = SpreadsheetApp.create(values[i][0]);
    var driveFile = DriveApp.getFileById(newSS.getId());
    df.addFile(driveFile);
    DriveApp.removeFile(driveFile);
  }
 }
};

Это было бы для меня такой большой проблемой, если бы это было выполнимо.Спасибо огромное всем, кто даже читает это.

1 Ответ

0 голосов
/ 21 октября 2018

Короткий ответ

Используйте что-то вроде sheet.getRange(row + ':' + row), чтобы получить целую строку из объекта Лист .

Объяснение

Допустим, row - это номер строки.row + ':' + row возвращает ссылку в форме 1:1, которая ссылается на всю строку.

Как только мы возьмем строку, мы можем использовать getValues ​​, чтобы получить ее значения или использовать любой из методов copyTo Range , чтобы скопировать ее на новый лист.

В качестве альтернативы, вместо отправки всей строки мы могли бы отправлять только соответствующие ячейки из строки и из столбцов от A до G, используя sheet.getRange('A' + row + ':G' + row) или sheet.getRange(row, 1, 1, 6).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...