2017-02-24 19 views
1

我試圖插入一行到一個工作表的底部,而不是我的值我看到文本類似於當你嘗試在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

回答

0

它看起來像一個問題,你使用getValues()它返回一個二維數組,並需要像這樣訪問。

GAS API Reference: getValues()

返回

對象[] [] - 一個二維值數組

我相信這個編輯設置你var array應該做的伎倆,假設你數據範圍是單行(索引0將是第一行,否則只是將索引更改爲所需行):

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

這是因爲appendRow()正在尋找array []而不是array [] []。

如果試圖追加:

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

它會顯示爲,因爲它試圖獲取數組的第一個位置的所有內容在一個單元格下面。它通過返回一個數組對象的字符串來實現這個功能,這個數組對象就是本地代碼標識符。

可以通過它的單個成員追加追加數組的內容如

ss.appendRow(array[0]) 

會追加

1 | 2 | 3 
相關問題