如何在Google表格脚本中放置不同长度的二维数组?

时间:2018-12-22 12:45:38

标签: google-sheets

我正在使用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数组?

预期结果:

1 个答案:

答案 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)
})