首页 文章

没有调用setValues()的权限 - Google Apps脚本,JSON数据[重复]

提问于
浏览
0

这个问题在这里已有答案:

这是一个Google Apps脚本,可将JSON数据提取到Google表格中 .

代码是:

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}

这样做的目的是能够在Google工作表中将JSON数据转换为表格形式 .

以上大部分都紧跟了这个帖子中的内容:"The coordinates or dimensions of the range are invalid" - Google Apps Script and JSON Data

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

1 回答

  • 4

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

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

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

相关问题