我正在尝试在工作表的底部插入一行,但是我看到的文本与您尝试在Java中打印数组时发生的情况类似。我检查了数组是否使用logger正确制作,并且它具有我想要的值。
var name = e.range.getRow() + SpreadsheetApp.getActiveSpreadsheet().getName();
var array = e.range.getValues().concat(name);
Logger.log(array.toString());
masterSheet.appendRow(array);
array
包含一个时间戳,string1,string2,最后是我连接的名称。取而代之的是[Ljava.lang.Object;@7dch7145
答案 0 :(得分:1)
这是因为appendRow()
正在寻找array []而不是array [] []。
如果您尝试追加:
var array = [[1,2,3],"some string"]
它将显示如下,因为它试图在单个单元格中获取数组的第一个位置的全部内容。它通过返回一个数组对象的字符串来实现这一点,该字符串结果是原生代码标识符。
[Ljava.lang.Object;@32dba1e2 | some string
您可以通过附加其各个成员(例如
)来附加数组的内容ss.appendRow(array[0])
会追加
1 | 2 | 3
答案 1 :(得分:0)
使用getValues()
看起来像是一个问题,它返回一个二维数组,需要像这样访问。
GAS API Reference: getValues()
返回
Object [] [] - 值的二维数组
我认为设置var array
的编辑应该可以解决问题,假设您的数据范围是单行(索引0将是第一行,否则只需将索引更改为您想要的行):
var array = e.range.getValues()[0].concat(name);