スプレッドシートを操作したい(SpreadsheetApp)

 1// アクティブなブックを取得する
 2const book = SpreadsheetApp.getActiveSpreadsheet();
 3// アクティブなシートを取得する
 4const sheet = book.getActiveSheet();
 5// シートにあるすべてのデータを2次元配列で取得する
 6const arrays = sheet.getDataRange().getValues();
 7
 8// 見出しとデータに分割
 9const headers = arrays[0];
10const data = arrays.slice(1);
11
12Logger.log(`見出し: ${headers}`);
13Logger.log(`データ数: ${data.length}`);

SpreadsheetAppクラスで、Googleスプレッドシートを操作できます。

上記のコードサンプルでは、取得したシートにある値をgetDataRangeですべて選択し、getValuesすることで2次元配列のデータにしています。

最後に中身を確認するためにLogger.logしています。 ここに処理を追加してCSVにしたり、JSONにしたり、ウェブAPIっぽくしたりもできます。

注釈

スプレッドシートにはブック > シート > セルという構造があります。

このドキュメントでは、Excelでの呼び方を参考に、 Spreadsheetオブジェクトを「ブック」、 Sheetオブジェクトを「シート」、 Rangeオブジェクトを「セル」と呼ぶことにします。

公式リファレンスやサンプルコードではSpreadsheetオブジェクトも「スプレッドシート」と呼ばれることが多く、 ファイル全体(ブック)を指すのか、単一の表(シート)を指すのか紛らわしいためです。

変数名もこれにあわせてbook、sheetを使います。

カスタムメニューを追加したい(getUi)

1function onOpen() {
2    const ui = SpreadsheetApp.getUi();
3    const menu = ui.createMenu("メニュー名");
4    menu.addItem("アイテム名1", "関数名1");
5    menu.addItem("アイテム名2", "関数名2");
6    menu.addSeparator();
7    menu.addItem("アイテム名3", "関数名3");
8    menu.addToUi();
9}

スプレッドシートにカスタムメニューを追加できます。 シートを開いたときに、メニューに追加するためonOpen関数の中で定義します。

リファレンス