Google Таблицы · 14.12.2021 0

Google Sheets. Урок 122-3. Работаем с Google Calendar синхронизация и удаление данных

Продолжаем работать с Гугл календарь и в этом уроке по Гугл таблицам мы поговорим о синхронизации данных в Гугл календарь. Как сделать так, чтобы данные на задваивались. Как удалять данные.

На прошлых уроках мы с Вами научились импортировать и экспортировать данные в google календарь.

Если пропустили, то обязательно посмотрите данные уроки. Это важно.

Импорт данных из Гугл календаря

Экспорт данных в Гугл календарь

Часто при использовании синхронизации с Гугл календарем возникает такая проблема, как задвоение записей. Прямой функции синхронизации нет. Мы должны с Вами это реализовать, например через промежуточное удаление не нужных или задвоенных записей.

Посмотрите мой урок, в котором я предлагаю Вам два способа решения данной проблемы.

Вы можете скачать файл с исходными данными и скриптами

Обратите внимание, что Вы должны сохранить копию файла себе, для того чтобы стало возможным вносить изменения. Так-же необходимо в скрипте изменить имя календаря. По умолчанию программа будет пытаться вносить изменения в мой календарь.

Скрипты, которые используются:

Функция импорта

function calendarimp() {  

var cal = CalendarApp.getCalendarById(«howtomake@gmail.com»);

var spreadsheet = SpreadsheetApp.getActive();

var teklist = spreadsheet.getSheetByName(‘Лист2’);

var table = SpreadsheetApp.getActiveSpreadsheet().setActiveSheet(teklist);

spreadsheet.getRange(‘A5:E1000’).activate();

spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});

var datn = table.getRange(1,1).getValue();

var datk = table.getRange(1,2).getValue();

var dann = cal.getEvents(datn, datk);

for (var i=0; i<dann.length;i++){
var title = dann[i].getTitle();table.getRange(i+5, 3).setValue(title);
var vrn = dann[i].getStartTime();table.getRange(i+5, 1).setValue(vrn);
var vrk = dann[i].getEndTime();table.getRange(i+5, 2).setValue(vrk);
var loc = dann[i].getLocation();table.getRange(i+5, 4).setValue(loc);
var prim = dann[i].getDescription();table.getRange(i+5, 5).setValue(prim); 

}  

}

Функция синхронизации и экспорта

function calendarexp() {

var cal = CalendarApp.getCalendarById(«howtomaker@gmail.com»);

var spreadsheet = SpreadsheetApp.getActive();

var teklist = spreadsheet.getSheetByName(‘Лист2’);

var table = SpreadsheetApp.getActiveSpreadsheet().setActiveSheet(teklist);

var datn = table.getRange(1,1).getValue();

var datk = table.getRange(1,2).getValue();

var dann = cal.getEvents(datn, datk);
for (var i=0; i<dann.length;i++){
dann[i].deleteEvent();
}
var dlinna = table.getLastRow(); 
for (var i=5; i<dlinna+1;i++){

var title = table.getRange(i,3).getValue();

var datn = table.getRange(i,1).getValue();

var datk = table.getRange(i,2).getValue();

var mesto = table.getRange(i,4).getValue();

var primech = table.getRange(i,5).getValue();

cal.createEvent(title,datn,datk,{location:mesto,description:primech});

}

}