2017-02-24 3 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、文字列2、と私は連結最終的には名前が含まれています。代わりに私は何かを得る[Ljava.lang.Object;@7dch7145

答えて

0

getValues()の使用には問題があり、2次元配列を返し、そのようにアクセスする必要があります。

GAS API Reference: getValues()

戻り

オブジェクト[] [] - 値

の二次元配列私はあなたのvar arrayを設定するには、この編集はあなたを想定し、トリックを行う必要があります信じていますデータ範囲は1行分です(インデックス0が最初の行になります)。

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

appendRow()は配列[]ではなく配列[] []を探しているからです。

あなたが追加しようとすると:それは単一のセル内の配列の最初の位置の全体の内容を取得しようとしているとして、次のように表示されます

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

。これは、ネイティブコード識別子であることが判明している配列オブジェクトの文字列を返すことによって行います。

あなたは、その個々のメンバーを追加することによって、配列の内容を追加することができ

ss.appendRow(array[0]) 

としては、追加でしょう

1 | 2 | 3 
関連する問題