我想在谷歌电子表格中处理一堆数据,这样我就可以轻松地创建图表和所有这些东西。数据来自 URL 的 Json 格式。我可以成功地在电子表格中获取这些数据,但我无法找到一种简单的方法将这些数据分配到工作表的列中。
这是 JSON 结构的示例:
有什么简单的方法可以实现我的目标吗?
非常感谢。
我想在谷歌电子表格中处理一堆数据,这样我就可以轻松地创建图表和所有这些东西。数据来自 URL 的 Json 格式。我可以成功地在电子表格中获取这些数据,但我无法找到一种简单的方法将这些数据分配到工作表的列中。
这是 JSON 结构的示例:
有什么简单的方法可以实现我的目标吗?
非常感谢。
这个示例脚本怎么样?此示例脚本使用递归调用检索 JSON 数据中的所有元素,并将它们导入电子表格。
为了使用这个脚本,请进行如下设置。1. 将此脚本用作电子表格的绑定脚本。1. 将json
数据定义在全局变量中main()
或作为全局变量。
var json = {
keyA: {
ArrayA1: ["ArrayA1_val1", "ArrayA1_val2", "ArrayA1_val3"],
keyA1: "keyA1_val",
keyA2: "keyA2_val",
},
keyB: {
ArrayB1: ["ArrayB1_val1", "ArrayB1_val2", "ArrayB1_val3"],
keyB1: "keyA1_val",
keyB2: "keyA2_val",
keyB3: {
ArrayB31: ["ArrayB31_val1", "ArrayB31_val2", "ArrayB31_val3"],
ArrayB32: ["ArrayB32_val1", "ArrayB32_val2", "ArrayB32_val3"],
}
}
};
function getElements(v, callback) {
for (var k in v) {
callback(
k,
Object.prototype.toString.call(v[k]).slice(8, -1).toLowerCase() === "object"
? JSON.stringify(v[k], null, "\t") : v[k],
Object.prototype.toString.call(v[k]).slice(8, -1).toLowerCase()
);
if (typeof v[k] === "object") {
getElements(v[k], callback);
}
}
}
function main() {
var ar = [];
getElements(json, function(key, value, type) {ar.push([key, value, type])});
var ss = SpreadsheetApp.getActiveSheet();
ss.getRange(ss.getLastRow() + 1, 1, ar.length, ar[0].length).setValues(ar);
}
如果我误解了你的问题,我很抱歉。