首页 > 解决方案 > 如何使用 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 的示例输出:

在此处输入图像描述

这是我的预期输出:

输出

标签: arraysgoogle-apps-scriptgoogle-sheetsappend

解决方案


我相信你的目标如下。

  • 您想将arr“A”列第 2 行的值放入工作表“test”中。

在这种情况下,如何进行以下修改?

从:

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
  • 如果要将值附加到工作表,请mainSheet.getRange(2, 1, arr.length).setValues(arr);进行如下修改。

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

参考:


推荐阅读