1

我正在为 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")

欢迎任何帮助。谢谢。

4

2 回答 2

9

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);
于 2013-07-04T14:50:24.073 回答
0

基本思想是定义一个列数组并将其插入到行数组中。因此,例如,如果您希望创建具有 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']]);
于 2022-01-13T16:35:52.500 回答