Синхронизация календаря Google с таблицей Google - PullRequest
0 голосов
/ 25 сентября 2018

Я нашел этот довольно удивительный скрипт, который синхронизирует между собой Google Cal и электронную таблицу Google.Двухсторонняя синхронизация.И это работает!-> https://github.com/Davepar/gcalendarsync

Теперь я не смогу вставить адрес календаря в лист с именем «Данные».В ячейке В1.Сценарий должен извлечь адрес оттуда, чтобы мне не нужно было изменять его в сценарии.

Может кто-нибудь выяснить, как это сделать?
Изменения будут связаны с определением calendarId по данным! B1
И сценарий должен выполняться только на листе

Вы можете увидетьПример документа здесь: https://docs.google.com/spreadsheets/d/1TCIIBRmshx2kmhhwrhCpg5sxO7N82tOJ7hHxWv_u-Yw/edit?usp=sharing

Я сделал копию сценария на листе Script

1 Ответ

0 голосов
/ 22 октября 2018

Идентификатор календаря объявлен в строке 8

var calendarId = 'bora-bora.dk_is0cr9ibe4thrs4mkqghvudrrk@group.calendar.google.com';

Он вызывается двумя функциями:
1 = syncFromCalendar в строке 223. Синхронизация из календаря в электронную таблицу.

var calendar = CalendarApp.getCalendarById(calendarId);

2 = syncToCalendar в строке 307. Синхронизация из электронной таблицы в календарь.

var calendar = CalendarApp.getCalendarById(calendarId);

Цель состоит в том, чтобы программно вызвать идентификатор календаря для получения значения из ячейки B1 таблицы данных.
Для этого: i) переменную следует удалить, ii) добавить / вставитьновый код для получения нового значения для идентификатора календаря и iii) внесение изменений в функции, которые вызывают значение идентификатора календаря.

Действие:

1 - закомментировать строку 8
2 - вставить следующий код в строку 9

// Get the calendar code from Sheet "Data", cell B1
function getcalendarId() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName("Data");
  var calrange = sheet.getRange("B1");
  var calid =calrange.getValue();
  return calid;
}

3 - найти функцию = syncFromCalendar
3.1 - закомментировать эту строку

var calendar = CalendarApp.getCalendarById(calendarId);

3.2 Вставить /добавьте эти три строки над закомментированной строкой

// Get the calendar ID
var calidFrom = getcalendarId();
var calendar = CalendarApp.getCalendarById(calidFrom);

4 - Найдите функцию = syncToCalendar
4.1 Закомментируйте эту строку

var calendar = CalendarApp.getCalendarById(calendarId);

4.2 Вставьте / добавьте эти три строки вышезакомментированная строка

// Get the calendar ID
var calidTo = getcalendarId();
var calendar = CalendarApp.getCalendarById(calidTo);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...