-1

这是一个将 JSON 数据提取到 Google 表格中的 Google Apps 脚本。

代码是:

function pullJSON() {

  var url="https://api.myjson.com/bins/4610d"; // publicly available json

  var response = UrlFetchApp.fetch(url); // 
  var sheet =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");

  var dataAll = JSON.parse(response.getContentText()); 
  var dataSet = dataAll;

  var rows = [],
      data;

  for (i = 0; i < Object.keys(dataSet).length; i++) {
    data = dataSet[Object.keys(dataSet)[i]];
    rows.push([data.name]); //JSON entities here
  }

  dataRange = sheet.getRange(1, 1, rows.length, 1); 
  dataRange.setValues(rows);
}

在 Google 表格中,我通过在单元格中输入 =pullJSON() 来调用该函数。它显示错误:

“您无权调用 setValues(第 20 行)”指的是以下行:dataRange.setValues(rows);

并在单元格 A1、A2、A3 中产生“未定义”结果。

JSON数据源就是这样的:

{"id":1,"name":"A green door","price":12.5}

这样做的目的是能够将 JSON 数据转换为 google sheet 中的表格形式。

以上大部分内容都紧随此线程中的内容: “范围的坐标或尺寸无效” - Google Apps 脚本和 JSON 数据

非常感谢您对此问题的任何指导。

4

1 回答 1

4

自定义函数不能影响除返回值的单元格以外的单元格。换句话说,自定义函数不能编辑任意单元格,只能编辑调用它的单元格及其相邻单元格。要编辑任意单元格,请改用自定义菜单来运行函数。

来自文档:https ://developers.google.com/apps-script/guides/sheets/functions

我不知道您的确切用例,但看起来可以从自定义菜单运行您的功能。

于 2016-11-25T14:37:48.703 回答