GAS / Javascript: как установить значения только для пустых строк внизу листа - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть скрипт, который запускается каждый день, и каждый день новые значения устанавливаются на листе Google. Меня беспокоит то, что каждый раз, когда запускается скрипт, он перезаписывает существующие данные. То, что я хочу, для набора данных в последнем ряду в нижней части листа, чтобы было продолжение. Я попытался с моим кодом ниже, но он не работает. Как мне это сделать?

 var ss= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var lr=ss.getLastRow();
 var range = ss.getRange(1,10,lr-1)
 for (var j = 0; j < requestObjects.length; j++) {

  if(requestObjects[j].TimeOffTypeName != "Sick") {
        ss.getRange(1 + j,1).setValue(requestObjects[j].Firstname);
        ss.getRange(1+ j, 2).setValue(requestObjects[j].Lastname);
        ss.getRange(1 + j,3).setValue(requestObjects[j].LoginID);
        ss.getRange(1 + j,4).setValue(requestObjects[j].TimeOffTypeName);
        ss.getRange(1 + j,5).setValue(requestObjects[j].TimeOffDayOfWeek);
        ss.getRange(1 + j,6).setValue(requestObjects[j].SubmittedDate);
        ss.getRange(1 + j,7).setValue(requestObjects[j].TimeOffHours);
        ss.getRange(1 + j,8).setValue(requestObjects[j].TimeOffDate);
        ss.getRange(1 + j,11).setValue(requestObjects[j].Status);
  }

1 Ответ

1 голос
/ 21 февраля 2020

Используйте Object.values() (если значения объектов упорядочены. Если нет, используйте деструктурирование для получения значений), чтобы создать выходной массив и затем вывести этот массив:

 const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 const lr = ss.getLastRow();
 const output = requestObjects.map(obj => Object.values(obj));
 //const output = requestObjects.map(({Firstname,LastName,LoginID}) => [Firstname, LastName, LoginID]);//destructuring
 ss.getRange(lr + 1, 1, output.length, output[0].length).setValues(output);//batch set values on the lr+1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...