下面我的作業代碼用我想要的資訊填充了我想要的正確列,問題是我需要填寫 2,000 行,并且一次按降序填充一個單元格。有沒有辦法進行批量更新而不是在列中一次執行 1 個單元格?
function logDataInEveryCell() {
const data = SpreadsheetApp.getActiveSpreadsheet().getRange("A2:A51").getValues();
let JOBID = [];
for (let a = 0; a < data.length; a ) {
JOBID = data[a]
var res = UrlFetchApp.fetch("API" JOBID "Token")
var content = res.getContentText();
var json = JSON.parse(content);
// Driver Name
var dispatches = json["dispatches"]["items"];
var lastItem = dispatches.pop();
var dName = [lastItem.vehicle.driver.contact.name]
Logger.log(dName)
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var colValues = sheet.getRange("C2:C51").getValues();
var count = colValues.filter(String).length
sheet.getRange(count 2,3).setValue(dName);;
}}
uj5u.com熱心網友回復:
嘗試這個:
function logDataInEveryCell() {
const ss = SpreadsheetApp.getActive();
const vs = ss.getRange("A2:A51").getValues().flat();
const osh = ss.getSheetByName("Sheet1");
osh.clearContents();
let l = 1;
vs.forEach(e => {
let res = UrlFetchApp.fetch("API" e "Token");
let obj = JSON.parse(res.getContentText());
let items = obj["dispatches"]["items"];
items.pop();//guess
let vo = items.map(itm => [itm.vehicle.driver.contact.name])
osh.getRange(l,1,vo.length,vo[0].length).setValues(vo);
l = vo.length;
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/435845.html
