[英]How to Create an Array From JSON and Import the Values to Multiple Rows in a Google Sheet Using Google Apps Scripts
我正在嘗試將 Google Search Console API 中的數據導入 Google 表格。 我能夠以 JSON 格式檢索我需要的數據,但無法弄清楚如何將其傳輸到工作表以填充多行。
我有以下 function 能夠導入數據,但只能導入一行:
function dataFillTest(sheet, json, regex) {
sheet.clear();
sheet.appendRow(["Date", "Link", "Clicks", "Category"]);
var data = new Array();
for (var i = 0; i < 5; i++) {
data.push(json.rows[i].keys[0], json.rows[i].keys[1], json.rows[i].clicks);
}
Logger.log("Contents of data after for loop");
Logger.log(data);
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow + 1, 1, 1, 15).setValues([data]);
var cell = sheet.getRange("D2:D");
cell.setFormula('=REGEXEXTRACT(B2; "https://'+ regex+ '(\\w+)")');
}
這是我運行代碼時工作表的樣子:
這就是我想要實現的目標:
如果有幫助的話,這就是我擁有的 JSON 的結構:
{responseAggregationType=byPage, rows=[{ctr=0.2625019822003836, keys=[2021-08-26, https://mondo.rs/Magazin/Zdravlje/a1522777/Letovanje-u-Crnoj-Gori-i-stomacni-problemi.html], clicks=120842, impressions=460347}, {ctr=0.18834311984734511, keys=[2021-09-13, https://mondo.rs/Magazin/Stil/a1528560/Hrana-za-jaci-imunitet-posle-50.html], clicks=102256, impressions=542924}, {ctr=0.23844989249500642, keys=[2021-09-07, https://mondo.rs/Magazin/Zdravlje/a1527110/Novi-organ-u-ljudskom-telu.html], clicks=93712, impressions=393005}, {ctr=0.27251045096802823, keys=[2021-09-10, https://mondo.rs/Sport/Tenis/a1528706/Novak-Djokovic-zamalo-diskvalifikovan-sa-US-opena.html], clicks=93349, impressions=342552}, {ctr=0.22042795846910482, keys=[2021-11-27, https://mondo.rs/Info/Drustvo/a1561695/Za-4-godine-ustedeo-7000-evra-na-grejanju.html], clicks=87129, impressions=395272}]}
將數據寫入單行的原因是因為您在數組data
中推送一個列表,然后在將data
數組寫入工作表時將其設置為 2-d (這是您實際在做什么的示例) . 您應該將數組推送到data
以使其成為二維數組。
var data = new Array();
for (var i = 0; i < 5; i++) {
data.push([json.rows[i].keys[0], json.rows[i].keys[1], json.rows[i].clicks]);
}
Logger.log("Contents of data after for loop");
Logger.log(data);
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow + 1, 1, data.length, data[0].length).setValues(data);
[]
封裝了 json 數據,然后將其推送到數組data
。data
數組維度修改getRange()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.