|
Синхронизация Гугл Таблицы с Гугл Календаремскрипт, инструкция, инфографика |
|
Онлайн: РИСОВАЛКИ | ИГРЫ | РЕЛАКС программы |
Анатолий Опарин / март, 2019
СОЗДАЕМ ТАБЛИЦУСоздаем таблицу по шаблону: Имя | Фамилия | Дата рождения. Первая строка – заголовок. Именно на такой шаблон рассчитан скрипт ниже. При изменении шаблона потребуется некоторая корректировка скрипта.ПИШЕМ СКРИПТВ Таблице с нашим расписанием дней рождения через меню Tools > Script Editor зайти в редактор скриптов. Написать код:function DR() { // Получаем адреса активных ячеек var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues(); // Создаем "Личный_Календарь", если его не было var calname = CalendarApp.getCalendarsByName("Личный_Календарь"); if (calname.length > 0) { currentCalendar = calname[0]; var events = currentCalendar.getEvents(new Date(2019,01,01),new Date(2030,01,01)); for (var j = 0; j < events.length; j++) { // Очищаем events[j].deleteEvent(); } } else { // Создаем var currentCalendar = CalendarApp.createCalendar("Личный_Календарь"); } // Создаем события по дате из третьего столбца [C] и доб. email напоминания for (var i = 1; i < data.length; i++) { var event = currentCalendar.createAllDayEventSeries("Сегодня "+data[i][0]+" "+data[i][1]+" празднует день рождения.",data[i][2],CalendarApp.newRecurrence().addYearlyRule()); event.addEmailReminder(0); } } Сохранить код по кнопке [Save] (изображение дискеты).
Желтым в коде подсвечены те участки, которые должны будут подвергнуться ревизии при изменении формата таблицы, заложенного в постановке задачи: i = 1 Единица соответствует второй строке, т.к. в программировании счет начинается с нуля. Т.е., если у вас заголовок будет занимать две строки, то 1 надо будет заменить на 2. data[i][0] Это имя. data[i][1] Это фамилия. data[i][2] Это дата рождения. Т.е., если вы изменяете формат и вводите вторым столбцом отчество, сдвигая фамилию и дату вправо, то в коде на месте data[i][2] должно стоять data[i][3], а отчество в виде data[i][1] вставьте после имени, а именно data[i][0] замените на data[i][0]+” ”+data[i][1]. И прежнюю переменную data[i][1], отвечавшую за фамилию, измените на data[i][2]. Таким образом, актуализировать расписание Календаря можно в любое время нажатием на кнопку [ДР]. Прежнее содержание календаря «Личный_Календарь» будет полностью заменяться на расписание, которое присутствует в Таблице. РИСУЕМ КНОПКУ ДЛЯ СКРИПТАДля запуска скрипта из интерфейса Таблицы в ней создадим кнопку:
Теперь связь кнопки и скрипта организована. ЗАПУСКАЕМ СКРИПТ
ИНФОГРАФИКАСпециально для визуалов ниже изображено то, что написано выше: ВАРИАНТЫ ВЫЗОВА ФУНКЦИИСкрипт состоит из функций, часто независимых друг от друга. Вызвать функцию на исполнение можно из другой функции, а также независимо, и Гугл предоставляет 4 варианта такого независимого вызова: 1) Кнопка. Вариант создания кнопки и назначение её на вызов функции описан выше. 2) Постоянное меню. В примере используется в функции onOpen(e), которая автоматически запускается сама при загрузке таблицы: function onOpen(e) { // Это меню добавляется в главное верхнее меню при загрузке документа автоматически SpreadsheetApp.getUi() .createMenu('Моё меню') .addItem('Дни Рождения', 'DR') .addSeparator() .addItem('Имя_пункта_меню_1', 'имя_функции_1') .addItem('Имя_пункта_меню_2', 'имя_функции_2') // .addSubMenu(SpreadsheetApp.getUi().createMenu('My Submenu') // Это подменю // .addItem('One Submenu Item', 'mySecondFunction') // .addItem('Another Submenu Item', 'myThirdFunction')) .addToUi(); } 3) Меню, создаваемое кнопкой. Функцию menu() из примера ниже надо привязать к какой-нибудь кнопке: function menu() { // Это меню добавляется в главное верхнее меню по кнопке и после перезагрузки документа пропадает var ss = SpreadsheetApp.getActiveSpreadsheet(); var entries = [ {name: "ДниРожд", functionName: "DR"} ]; ss.addMenu("Мои функции", entries); // entries.push(null); // line separator // entries.push({name: "Menu Entry 2", functionName: "function2"}); // Browser.msgBox("Сделано?"); } 4) Страница скрипта. На панели инструментов выбрать функцию по кнопке [Select Function] и нажать кнопку ▶. Для погружения в тему Google Apps Script см. https://developers.google.com/apps-script/reference/ Ещё статьи для офисных работников, расширяющие их навыки: • ChatGPT – интеллектуальный чатбот – что знает, что умеет, как подключиться • ChatGPT vs ChatSonic – сравнение двух чатботов • 100 нейросетей – категоризированный список со ссылками • Памятка по информационной безопасности • Колонтитулы и подложки в MS Word • Как организовать локальное хранилище писем в MS Outlook • Как настроить правила для входящих писем в MS Outlook • Обзоры и видео по 41 теме MS Excel • Использование фильтров в MS Excel • Работа с датой и временем в MS Excel • Что можно сделать с дублями строк в MS Excel • Функция ВПР в MS Excel • Функция СУММЕСЛИ в MS Excel • Функции ПОИСКПОЗ и ИНДЕКС в MS Excel • Как вывести экран Windows-ноутбука на телевизор • Как сделать запись видео экрана Windows 10 без сторонних программ • Document Express Editor – редактор DJVU документов • PDFgear – многофункциональный комбайн для работы с PDF • PowerPoint в HTML5 – обзор софта конвертации • Easy Data Transform – легкое преобразование структурированных данных • EssentialPIM – персональный информационный менеджер • LogViewPlus – анализ, мониторинг и визуализация лог-файлов • MindManager – для создания интеллект-карт • Help+Manual – для создания справок и руководств пользователя • HelpNDoc – для создания документации • oXygen XML Editor – программный комплекс для создания документации • Scrivener – программный менеджер писательского труда • SiYuan – современная программа-органайзер по подобию Notion • The Journal – редактор-ежедневник с возможностью экспорта в HTML • Xournal++ – программа для рукописных и рисованных записей • QGIS – геоинформационная система – быстрый старт • Camunda Modeler – приложение для моделирования бизнес-процессов • HyperSnap – лучший в мире скриншотер • StepShot – приложение для скриншотов и их оформления в документацию • TrueConf – отечественный сервис для видеоконференций и чатов • FontLab – профессиональное приложение для создания шрифтов • FictionBook Editor – редактор FB2 книг • Yonote – заменитель Notion в деле организации базы знаний |
|
|