スプレッドシートしたい(SpreadsheetApp

const spreadsheet = SpreadsheetApp.getActive()
const sheet = spreadsheet.getActiveSheet();
const data = sheet.getDataRange().getValues().slice(1);
console.log(data);

GASでGoogleスプレッドシートを扱うにはSpreadsheetAppクラスを使います。 スプレッドシートにはスプレッドシート > シート > セルという構造がありますが、それぞれ SpredsheetクラスSheetクラス、[Rangeクラス][https://developers.google.com/apps-script/reference/spreadsheet/range]のオブジェクトが対応します。

上記のコードサンプルでは、取得したシートにある値をgetDataRangeですべて選択し、getValuesすることで2次元配列のデータにしています。 最後に中身を確認するためにconsole.logしています。 ここに処理を追加してCSVにしたり、JSONにしたり、ウェブAPIっぽくしたりもできます。

スプレッドシートを開きたい(openById

const spreadsheet = SpreadsheetApp.getActive();
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const spreadsheet = SpreadsheetApp.openById("スプレッドシートのID");
const spreadsheet = SpreadsheetApp.openByUrl("スプレッドシートのURL");

スプレッドシートにバインドしたスクリプトの場合、getActive...でスプレッドシートを開くことができます。 他の場所にあるスプレッドシートを開きたい場合は、``openBy…`を使います。

シートを開きたい(getSheetByName

const sheet = SpreadsheetApp.getActiveSheet();
const sheet = SpreadsheetApp.openById("スプレッドシートID").getSheetsByName("シート名");
const sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

シートはスプレッドシートの中にあるので、Spreadsheetクラスのオブジェクトを通してアクセスできます。 スプレッドシートIDとシート名を使って、あるスプレッドシートを開くことができます。 getSheets(複数形)で複数のシートを配列として取ってくることもできます。

シート名を変更したい(setName

sheet.setName("変更後のシート名");

同じ名前のシートは作れません。

シートを削除したい(deleteSheet

spreadsheet.deleteSheet(spreadsheet.getSheetByName("シート名"););

シートを削除する場合は、Spreadsheetオブジェクトに対して操作します。

シートを保護したい(protect

const protection = sheet.protect().setDescription("説明");
const protection = cells.protect().setDescription("説明");

シートや選択したセルを保護できます。

セルを選択したい(getRange

const cell = sheet.getRange("セル名");
const cell = sheet.getRange("行番号", "列番号");
const cells = sheet.getRange("セル名:セル名");
const cells = sheet.getRange("行番号", "列番号", "行数");
const cells = sheet.getRange("行番号", "列番号", "行数", "列数");
const data = sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumns());
const data = sheet.getDataRange().slice(1);

セル名や番地(行番号と列番号)を使ってセルを選択できます。 getDataRangeでデータが存在する範囲をすべて選択できます。 データに見出しを含みたくない場合はslice(1)するとよいかもしれません。

データを追加したい(setValues

// データは二次元配列で作成する
const data = [
    ["A1", "B1", "C1"],
    ["A2", "B2", "C2"],
    ["A3", "B3", "C3"],
    ["A4", "B4", "C4"],
    ];

// 配列のサイズを求める
const nrows = data.length
const ncols = data[0].length

// 範囲を指定してデータをセットする
const range = sheet.getRange(1, 1, nrows, ncols).setValues(data);

セル書式を変更したい

const cells = sheet.getRange(範囲); // 開始行, 開始列, 行数, 列数
cells.setFontSize(整数);
cells.setFontFamily("フォント名");
cells.setFontWeight("ウェイト名"); // "normal", "bold"
cells.setFontStyle("スタイル名");  // "normal", "italic"
cells.setFontLine("ライン名");    // "none", "underline", "line-through"
cells.setFontColors("色");
cells.setBackgrounds("色");

選択したセルに対して、フォントやスタイル、文字色などを設定できます。

組み込み関数したい(setFormula

const cell = sheet.getRange("セル名");
cell.setFormula("=SUM(セル名:セル名)");

setFormulaを使って、スプレッドシートの組み込み関数を利用できます。

グラフしたい

const chart = sheet.newChart()
    .asBarChart()
    .addRange(データの範囲)
    .setPosition(表示位置)
    .setOption("height", 高さ)
    .setOption("width", )
    .setOption("title", タイトル)
    .build();
sheet.insertChart(chart);

カスタムメニューしたい(getUi

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

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