簡體   English   中英

GAS/Javascript:如何將值設置為僅工作表底部的空行

[英]GAS/Javascript: How do I set values to only empty rows at the bottom of the sheet

我有一個每天運行的腳本,每天都會將新值設置為谷歌表。 我擔心的是每次腳本運行時,它都會覆蓋現有數據。 我想要的是工作表底部最后一行的數據集,以便有一個延續。 我已經嘗試使用下面的代碼,但它不起作用。 我該怎么做呢?

 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);
  }

使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM