diary

主にコンピュータ技術関連のことを投稿。 / 投稿は個人の意見であり所属団体の立場を代表するものではありません。

(簡易版)Google App Script で Google Spreadsheet に日本の祝日リストを吐き出す

これをもっと簡単にしたい。

google spread sheetに自動更新される日本の祝日シートを作る - Qiita

function generateHolidayList() {
  const url = 'https://docs.google.com/spreadsheets/d/xxxxxxxx';
  const sheet = '日本の祝日';

  const start = new Date('2018-01-01T00:00:00');
  const end = new Date('2030-12-31T00:00:00');

  const holidays = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com')
    .getEvents(start, end)
    .map(function(e) { return [e.getStartTime(), e.getTitle()] });
  SpreadsheetApp.openByUrl(url).getSheetByName(sheet).getRange(1, 1, holidays.length, 2).setValues(holidays);
}

このスクリプトは1カラム目に日付、2カラム目に祝日の名前を書き込む。

どこに書き込むのかは url, sheet 変数で決める。

一度実行すると上書きされる。実用上はそんなもんでいいのではないかな。元の qiita のは空白の制御とかもしてるけど滅多にやらないから手作業で十分だし、コードの見通しを良くしたい。あとは早すぎる抽象化をバッサリ削除。