谷歌电子表格中的setValues权限问题

时间:2015-11-19 14:48:24

标签: google-apps-script google-sheets

我制作了将数据插入工作表的脚本。但它不起作用。返回错误: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);
}

1 个答案:

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

}

我的表单的输出:

enter image description here

所以只需根据上面的建议修改你的代码,你的功能就可以了。

PS:我不知道你为什么要将type作为参数添加到函数中,但我认为它与获取result数组有关。如果没有,并且您没有使用它,我建议考虑删除它。