Цель состоит в том, чтобы связать один из моих документов Google Sheet с Календарем Google и создать события по данным листа. В документ включены два листа:
- Первый - это основной лист со всеми данными. Большинство из них не нужны для создания события.
- Второй - это копия важной информации с первого листа по следующей формуле:
=Sheet1!H$5
и следующие 3 ячейки под ним. Формула копируется в Sheet2, поэтому, если я обновлю sheet1, они также появятся там.
Основная проблема в том, что если я вызову код, он будет обновлять мой календарь каждый раз, когда я редактирую Sheet1, и одно и то же событие добавляется тысячу раз. Другая проблема заключается в том, что если я скопирую формулу - заполнить sheet2 данными автоматически из sheet1, если я добавлю новый - для кода последняя строка не самая последняя с данными в ней, однако это последняя один с формулой, обычно пустой.
Лист1:
Лист2:
Вот мой код:
function simpleSheetsToCalendar() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet2');
var data = sheet.getRange(sheet.getLastRow(),1,1,4).getValues();
var title = data[0][0];
var eventDesc = data[0][1];
var eventLoca = data[0][2];
var date = data[0][3];
var masterCal = CalendarApp.getCalendarById(‘CalendarID)
masterCal.createAllDayEvent(title, date,
{location:eventLoca,description:eventDesc});}