Googleカレンダーで日本の祝日を取得する
で取得した祝日の配列から
setValuesを使う話
でシートに書き出す
ということを実現するコードの例です
コード.gs
function set_public_holidays() {
var name = "日本の祝日";
var start = get_start_end()[0];
var end = get_start_end()[1];
var id = get_calender_id(name);
var public_holidays = get_schedules(id, start, end);
set_values(public_holidays);
}
function get_start_end() {
var year = new Date().getYear();
var start = year + "/01/01";
var end = year + "/12/31";
var start_end = [start, end];
return start_end;
}
function get_calender_id(name) {
var calender = CalendarApp.getCalendarsByName(name);
var id = calender[0].getId();
return id;
}
function get_schedules(id, start, end) {
var calender = CalendarApp.getCalendarById(id);
var start_date = new Date(start);
var end_date = new Date(end);
var schedules = calender.getEvents(start_date, end_date);
var array = [];
for (var i = 0; i < schedules.length; i++) {
var date = schedules[i].getAllDayStartDate();
date = get_date(date);
var title = schedules[i].getTitle();
array.push([date, title]);
}
return array;
}
function get_date(date) {
var result = Utilities.formatDate(new Date(date), 'Asia/Tokyo', 'yyyy/MM/dd');
return result;
}
function set_values(array) {
var sh = SpreadsheetApp.getActiveSheet();
var last_row = sh.getLastRow();
var start_row = last_row + 1;
var start_col = 1;
var num_rows = array.length;
var num_cols = array[0].length;
var range = sh.getRange(start_row, start_col, num_rows, num_cols);
range.setValues(array);
}
|
スプレッドシートのスクリプトエディタに上記コード.gsを保存して
set_public_holidays() を実行すると
以下のように今年の祝日がシートに書き出されます
関連記事
Googleカレンダーで日本の祝日を取得する
setValuesを使う話
