GASを使ってスプレットシートのデータをテーブル風に操作したら便利だった。 そのときのコードのメモ。

pandasのような集計、集約などはGASでやるのはしんどそうなので、そこはスプレットシート側の機能を使うのがよさそうだった。 GASはあくまでCRUDに使うのがよさそう。

GAS

Insert

function insert(sheet, id, record) {
  sheet.appendRow(record);
  return id;
}

Update

function update(sheet, id, record) {
  const data = sheet.getDataRange().getValues();

  for (let i = 1; i < data.length; i++) {
    if (data[i][0] == id) {
      console.log(record.length);
      sheet.getRange(i+1, 1, 1, record.length).setValues([record]);

      return true;
    }
  }

  return false;
}

Upsert

function upsert(sheet, id, record) {
  if (update(sheet, id, record)) {
    return id;
  } else {
    return insert(sheet, id, record);
  }
}

Support

もしこの記事が役に立ったなら、 こちらから ☕ を一杯支援いただけると喜びます