这是一个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
请非常感谢有关此问题的任何指导。
答案 0 :(得分:4)
自定义函数不会影响它返回的单元格以外的单元格 价值。换句话说,自定义函数不能随意编辑 细胞,只有它被调用的细胞和它们相邻的细胞。至 编辑任意单元格,使用自定义菜单来代替运行函数。
来自文档:https://developers.google.com/apps-script/guides/sheets/functions
我不知道您的确切用例,但看起来可以从自定义菜单中运行您的功能。