我制作了将数据插入工作表的脚本。但它不起作用。返回错误:setValues没有权限。为什么呢?
function addData(type){
/*
Somehow I get 2d array: result
*/
var arr = [];
var c = [];
var i, j;
for (i = 0;i < result.length-1; i++) {
c=[];
for (j = 0; j < result[0].length; j++){
c.push(result[i][j]);
}
arr.push(c);
}
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1, 1, i+1, j+1).setValues(arr);
}
答案 0 :(得分:0)
好的,所以我发现了问题。你的行:
sheet.getRange(1, 1, i+1, j+1).setValues(arr);
在结果数组中的每个值的位置第1行和第1列调用数组setValue。用这样的东西替换它你应该很高兴:
function addData(){
var sheet = SpreadsheetApp.getActiveSheet();
var result = [[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15], [16,17,18,19,20]];
for(var i=0; i<result.length; i++)
{
for(var j=0; j<result[0].length; j++)
{
sheet.getRange(i+1, j+1).setValue(result[i][j]);
}
}
}
我的表单的输出:
所以只需根据上面的建议修改你的代码,你的功能就可以了。
PS:我不知道你为什么要将type
作为参数添加到函数中,但我认为它与获取result
数组有关。如果没有,并且您没有使用它,我建议考虑删除它。