今回は、Google Apps Scriptでスプレッドシートの最終行にレコードを追加する方法を解説していきたいと思います。
appendRowメソッドでシートの最終行にレコードを追加する
appendRow() メソッドによってスプレッドシートでデータが入力されている行の一つ下に行を追加してデータを書き込みます。
以下の書式で、カッコに渡す引数は1次元配列である必要があります。
Sheetオブジェクト.appendRow(配列)
例えば、appendRowメソッドを使ってデータを追加するスクリプトは、以下のように書くことができます。
function appendRecords(){
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(['イチゴ','ブドウ',ミカン]);
}
appendRow() は Sheetクラスのメソッドであるので、上記のようなSheetクラスの作成の方法以外でも問題なく動作します。
この方法では行がない場合でも新しく下に挿入して書き込みをしてくれます。
pushメソッドで配列に要素を追加する
配列の最後に任意の要素を追加する場合は、Array(配列)オブジェクトの組み込みメソッドとして用意されているpushメソッドを使用します。
var Array = 配列データ;
Array.push( 追加する要素 );
今回サンプルとして使用する二次元配列はこちらです。
function productLists(){
var sheet = SpreadsheetApp.getActiveSheet();
//二次元配列
var values = [
["イチゴ","100円"],
["ブドウ","150円"],
["ミカン","200円"]
];
}
二次元配列valuesの中に一次元配列が3つ入っています。
pushを使用すると配列の末尾に要素を追加することができます。
括弧内に一次元配列["リンゴ", "250円"]を入力することで、二次元配列valuesの末尾に一次元配列["リンゴ", "250円"]を追加することが出来ます。
function productLists(){
var sheet = SpreadsheetApp.getActiveSheet();
//二次元配列
var values = [
["イチゴ","100円"],
["ブドウ","150円"],
["ミカン","200円"]
];
//二次元配列の末尾に一次元配列を追加する
values.push(["リンゴ", "250円"]);
sheet.getRange(2, 1, values.length, values[0].length).setValues(values);
}
setValuesメソッドを実行する場合には、getRangeで配列を書き出す範囲を指定する必要がありますので、以下のように行数と列数を取得しています。
行数: valuesの要素数(=レコード数)
列数: values0の要素数
まとめ
Google Apps Scriptで配列を使ってスプレットシートにレコードを追加する方法について解説しました。今回はシートの最終行に配列を追加するappendRowメソッドと配列に要素を追加するpushメソッドを使いました。