【问题标题】:Google Script - setValues issue谷歌脚本 - setValues 问题
【发布时间】:2013-07-04 11:29:28
【问题描述】:

我正在为 gDoc 电子表格编写脚本,但 setValues 方法有一点问题。

代码很基本,但仍然不能正常工作。

首先要构建一个数组:

var newRow = [date, sRowValues[0][1], sRowValues[0][2], sRowValues[0][4]];

到目前为止没有问题(我相信),然后我尝试将结果写入工作表:

destinationSheet.getRange(2,1,1,4).setValues(newRow);

这会带来以下错误信息:Cannot convert (class)@7fb23794 to Object

以下确实有效:

destinationSheet.getRange(2,2,1,1).setValue("newRow")

欢迎任何帮助。 谢谢。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    Range.setValues() 期待一个数组数组(二维数组),你给它一个对象数组。另一方面,Range.setValue() 需要一个对象(字符串、数字或日期),用于单个单元格。

    试试这个,它将产生一个 1 行 4 列的数组(与您的范围的尺寸匹配):

    var newRow = [date, sRowValues[0][1], sRowValues[0][2], sRowValues[0][4] ];
    var newData = [newRow];
    
    destinationSheet.getRange(2,1,1,4).setValues(newData);
    

    【讨论】:

    • 感谢您的回复。我一定会试试这个。同时我有一个解决这个问题的方法,一次设置一个值setValue(),但这肯定不是最好的方法。
    • 确认这对我有用 - 谢谢。现在我还有其他问题,但这就是生活,解决一送三..
    【解决方案2】:

    基本思想是定义一个列数组并将其插入到一个行数组中。因此,例如,如果您希望创建一个包含 4 个标题的行(在工作表的顶部 - 工作表的第一行),您可以执行以下操作:

    var columnNamesArray = ['id','name','description','price'];
    var headerRowArray = [columnNamesArray];
    mySheet.getRange(1,1,1,4).setValues(headerRowArray);
    

    或者,您可以将其缩短为:

    mySheet.getRange(1,1,1,4).setValues([['id','name','description','price']]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多