我正在使用json将2d数组发送到Google表格:
{"rep":[["a3289035","b656011929551"],["brown","realistic","yellow"]]}
然后我在Google脚本中获取此数组:
var parsedJson = JSON.parse(e.postData.contents);
var repList = parsedJson.rep;
一切正常,但是当我尝试将此数组放置在工作表上时:
sheet.getRange(row + 1, 2, repList[0].length, 1).setValues(repList[0]);
sheet.getRange(row + 1, 3, repList[1].length, 1).setValues(repList[1]);
我遇到了错误:
无法将数组转换为对象[] []
怎么了?
我发现这段代码可以做到:
repList[0] = repList[0].map(function(e){return [e];});
repList[1] = repList[1].map(function(e){return [e];});
sheet.getRange(row + 1, 2, repList[0].length, 1).setValues(repList[0]);
sheet.getRange(row + 1, 3, repList[1].length, 1).setValues(repList[1]);
但是如何使它适用于任何长度和任何子数组长度的2d数组?
预期结果:
答案 0 :(得分:1)
Vosnim,
尝试这样的事情:
var repList = parsedJson.rep;
var sheet = SpreadsheetApp.getActive().getSheetByName('TEST')
var startCol = 1;
repList.forEach(function (r, i) {
var values = r.map(function (ro) { return [ro]});
sheet.getRange(1, startCol + i, values.length, 1).setValues(values)
})