为什么不会阵列添加行的工作?(Why won't append row work with

2019-09-30 13:22发布

我想插入一行到表的底部,但不是我的价值观我看到类似,当您尝试打印在Java中的数组会发生什么文字。 我检查,看看是否在阵列与记录正确无误,它有我想要的值。

var name = e.range.getRow() + SpreadsheetApp.getActiveSpreadsheet().getName();
var array = e.range.getValues().concat(name);
Logger.log(array.toString());
masterSheet.appendRow(array);

array包含时间戳,字符串1,字符串,最后是我级联名称。 相反,我得到的东西像[Ljava.lang.Object;@7dch7145

Answer 1:

它看起来像你使用的问题getValues()返回一个二维数组,需要这样进行访问。

GAS API参考:的GetValues()

返回

对象[] [] - 值的二维阵列

我相信这个编辑设置你的var array应该做的伎俩,假设你的数据范围是单个行(索引0将是第一行,否则只是改变索引到想要的行):

var array = e.range.getValues()[0].concat(name);


Answer 2:

这是因为appendRow()寻找阵列[]数组不[] []。

如果试图追加:

var array = [[1,2,3],"some string"]  

它会显示为以下,因为它试图获取数组的第一个位置的所有内容在一个单元格。 它通过返回阵列对象,其结果是本机代码的标识符的字符串执行此操作。

[Ljava.lang.Object;@32dba1e2 |  some string

你可以通过它的各个成员追加如追加数组的内容

ss.appendRow(array[0])

将追加

1 | 2 | 3


文章来源: Why won't append row work with array?