aliceの技術ブログ

技術ブログ

Google App Scripts が便利!

はじめに

最近業務でGoogle App Scriptsを使っているのですが、とても便利で何かに使いたいと思いました。 そのときのための、備忘録(チートシート)です。

スプレッドシートを読み込む

URLから読み込む

const ss = SpreadsheetApp.openByUrl("url");

IDから読み込む

const ss = SpreadsheetApp.openById("id");

スプレッドシートのシートの取得

名前で取得

const sheet = ss.getSheetByName("name");

アクティブなシートを取得

const sheet = ss.getActiveSheet();

シートを配列で取得

const sheets = ss.getSheets()

データが入っている最終行の取得

const column = 1;
const lastRow = sheet.getRange(sheet.getMaxRows(), column).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();

sheet.getMaxRows() だと最終行(1000行とか)が取得される

セルとデータの取得

A1のセル・データ取得 データ取得は getValue で行う。

const cell = sheet.getRange("A1");
const data = cell.getValue();

A1:B5のセル・データ取得 データ取得は getValues で行う。

const cells = sheet.getRange("A1:B2");
const data = cells.getValues();

データの書き込み

セルに対して setValue を使う。

cell.setValue("hoge");

複数のセルに対しては setValues() を使う。

cells.setValues([
    ["A1", "B1"],
    ["A2", "B2"]
]);

行の追加

シートに対して、行を追加する場合、appendRow を使う。

sheet.appendRow([1, "hoge", "fuga"]);

doPost, doGet で jsonを返す

const res = {"response": "ok"};
return ContentService.createTextOutput(JSON.stringify(res)).setMimeType(ContentService.MimeType.JSON);

GET, POST通信

GET通信

const response = UrlFetchApp.fetch("url");
const jsonObj = JSON.parse(response.getContentText());

POST通信

const headers = {
  "method" : "post",
  "contentType": "application/json",
  "payload" : JSON.stringify({ hoge: "fuga" })
};
const response = UrlFetchApp.fetch("url", headers);
const jsonObj = JSON.parse(response.getContentText());

その他

ほぼ JavaScript だから雰囲気でなんとかなる