如何使用 Google 脚本将数组数据附加到电子表格行?

How to append array data to spreadsheet rows using Google Script?

我创建了一个脚本来从 REST API 检索数据。我可以在记录器中查看所有数组数据。如何将所有这些数据添加到行中。这是我当前的功能:

function myFunction() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mainSheet = ss.getSheetByName("test")
  mainSheet.getRange('A1:A3').clear();

  var apiKey = 'test';

  var URL_STRING = "test";

  var url = URL_STRING + "?ApiKey=" + apiKey;

  var response = UrlFetchApp.fetch(url);
  var json = response.getContentText();
  var data = JSON.parse(json);
  var arr = [];
  //Logger.log(data.output.o1);

  for (var i=0;i<data.output.o1.length;i++){
    x=(data.output.o1[i].company_name);
    arr.push(x);
    Logger.log(arr);
  } 
}

这是 arr 的示例输出:

这是我的预期输出:

我相信你的目标如下。

  • 您想将“A”列第 2 行的 arr 的值放入 sheet“测试”。

这样的话,下面的修改怎么样?

发件人:

for (var i=0;i<data.output.o1.length;i++){
  x=(data.output.o1[i].company_name);
  arr.push(x);
  Logger.log(arr);
}

收件人:

for (var i = 0; i < data.output.o1.length; i++) {
  x = (data.output.o1[i].company_name);
  arr.push([x]); // Modified
  Logger.log(arr);
}
mainSheet.getRange(2, 1, arr.length).setValues(arr); // Added
  • 如果要将值附加到 sheet,请按如下方式修改 mainSheet.getRange(2, 1, arr.length).setValues(arr);

      mainSheet.getRange(mainSheet.getLastRow() + 1, 1, arr.length).setValues(arr);
    

参考文献: