0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Синхронизация электронной таблицы Google и Карт Google (my)

синхронизация электронной таблицы Google и Карт Google (my)

Я хотел бы синхронизировать электронную таблицу google с картой, чтобы мне не приходилось загружать все каждый день.

Я обнаружил, что можно синхронизировать форму google с картой google map с помощью Google Fusion.

Но я не мог воспроизвести этот процесс в своей ситуации (я думаю, это может быть потому, что содержимое электронной таблицы не происходит из формы google, и, возможно, сценарий учитывает это)

Я не очень разбираюсь в написании сценариев, но автоматизация этого процесса была бы для меня настоящим взрывом!!

Я надеюсь, что кто-то сможет мне в этом помочь

большое спасибо и хорошего вам дня

2 ответа

  • Автоматически обновлять карту Google при обновлении электронной таблицы Google?

Я использую Google Maps Engine Lite и размещаю маркеры на карте из электронной таблицы Google. В данный момент я импортирую их вручную в слой. Есть ли способ автоматически обновлять пин-коды при обновлении электронной таблицы? Там очень мало об этом, или это потому, что это нужно сделать через API.

Я ищу способ создать форму google с конкретными данными из электронной таблицы google. Форма будет иметь одни и те же ‘standard’ вопросов для всех, но данные в первых двух вопросах будут ‘prefilled’ с уникальными данными из существующей электронной таблицы google. Данные будут уникальными на.

Единственное, что нужно учитывать в этой ситуации, — это разница в форме отправки. Парень в видео настраивает два триггера: один для onFormSubmit и один часовой триггер для синхронизации всякий раз, когда вносятся какие-либо изменения вручную.

Я не просматривал код напрямую, но все, что вам нужно сделать, это изменить код onFormSubmit и триггер. Измените код для поиска и обновления таблицы fusion любыми новыми строками из электронной таблицы. А затем измените триггер на желаемую потребность, таймер, вероятно, будет лучшим вариантом. Поэтому каждый час, или день, или запускайте его вручную после добавления строк.

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

Я мог бы представить, что метод почасовой синхронизации может быть изменен таким образом, чтобы искать строки, которые необходимо добавить, было бы так же просто, как вызвать функцию отправки.

У меня была такая же проблема, но я мог ее решить. Триггер времени не требуется, если вы устанавливаете функцию синхронизации в конце функции OnFormSubmit (так что «sync();» под «insertRowId(rowId, строка);» Синхронизация происходит после каждой отправки формы автоматически. Для больших форм я обнаружил, что вы не должны делать специальное расположение столбцов в таблице Fusion. Столбец адреса должен быть помечен как Местоположение в таблице Fusion. В свойствах скрипта электронной таблицы укажите addressColumn значение заголовка столбца столбца адреса, а третье свойство останется неизменным («latlng»>Местоположение. Что происходит, так это то, что значение адреса перезаписывается на «latlng». Поэтому, если у вас возникли проблемы с потерей исходных адресов, добавьте новый столбец, скопируйте по сценарию приложений тот же адрес (этот фрагмент сценария находится в начале функции OnFormSubmit) и (после синхронизации) дайте addressColumn значение заголовка столбца, а в таблице слияния пометьте исходный столбец addess как текст, а новый столбец как Местоположение.

Похожие вопросы:

Я хотел бы получить карту Google, показывающую всемирное местоположение пользователей форума, которая была бы заполнена из электронной таблицы Google (электронная таблица Google, в свою очередь.

Читайте так же:
Синхронизация баз данных 1с бухгалтерия

Я хотел бы импортировать (или лучше " ) данные ") из электронной таблицы Google (веб-приложение, похожее на Excel) в документ Google (веб-приложение, похожее на Word). Меня не интересуют.

Я должен иметь возможность обновлять таблицу Google fusion из электронной таблицы Google. Это ( https://gist.github.com/chrislkeller/3013360 ) устарело. Существует новый Google Fusion Tables API, но.

Я использую Google Maps Engine Lite и размещаю маркеры на карте из электронной таблицы Google. В данный момент я импортирую их вручную в слой. Есть ли способ автоматически обновлять пин-коды при.

Я ищу способ создать форму google с конкретными данными из электронной таблицы google. Форма будет иметь одни и те же ‘standard’ вопросов для всех, но данные в первых двух вопросах будут ‘prefilled’.

Я хотел получить данные из электронной таблицы Google и показать результат на своем сайте, а не показывать все подряд. Вот мой код:- $logfile = file(<LINK TO MY GOOGLE SPREADSHEET)); $findme =.

Привет, я новичок в разработке android и планирую разработать приложение для электронных таблиц, которое должно позволить пользователю 1) Создание и редактирование файла электронной таблицы на.

Мне нужно создать ярлык для электронной таблицы google на MAC OS, Есть ли какой-нибудь способ создать ярлык для конкретной электронной таблицы google на рабочем столе, чтобы я мог нажать на нее, и.

Я пытаюсь получить все тексты из электронной таблицы Google и заполнить их на своем сайте с помощью JavaScript,но мне нужен текст электронной таблицы, как он есть в электронной таблице, форматер с.

Я нашел этот довольно удивительный скрипт, который синхронизирует между собой google cal и Google spreadsheet. Двусторонняя синхронизация. И это работает! — >.

Как синхронизировать календарь и таблицу Google со скриптом

Я пытаюсь создать скрипт Служб Google, который поддерживает синхронизацию Календаря Google и «основной таблицы» на диске. Возможно ли это? Я нашел эти два сообщения:

Я вполне уверен, что это можно сделать, используя множество операторов if и логику, но, может быть, есть более простой способ?

Я просто предоставил следующий простой скрипт. Все, что было действительно необходимо, это добавлять события, основанные на двух столбцах, и это заняло бы слишком много времени для разработки.

3 ответа

Я написал скрипт, который синхронизирует между GCalendar и GSheet. Вы можете использовать его как есть или позаимствовать идеи. Существуют отдельные команды для копирования событий в разные стороны: https://github.com/Davepar/gcalendarsync

Как уже упоминалось (спасибо Энрике) в другом посте, я потратил некоторое время — именно это и привело меня в GAS — на обмен данными между электронными таблицами и календарями, главным образом потому, что люди, с которыми я работал, использовали для организации своего расписания (для старшие классы) в электронных таблицах и мне пришлось позаботиться о переходе на Google Calendars.

Однако через некоторое время оказалось, что интерфейс онлайн-календаря гораздо эффективнее для создания событий, поэтому они больше не используют лист для сценариев календаря !!

С другой стороны, параметры печати и презентации в GCal очень ограничены, поэтому другое направление все еще очень полезно, и мы используем его постоянно!

Я знаю, что это будет не по теме исходного вопроса и, возможно, слишком анекдотично, но я просто хотел отметить, что вы должны тщательно подумать о том, что вам действительно нужно, прежде чем изобретать велосипед . Как упоминал Могсдад, некоторые параметры событий нелегко описать в логике электронных таблиц, и, наконец, он может стать намного сложнее в использовании, чем оригинальный инструмент.

Читайте так же:
Как синхронизировать музыку на ipod не удаляя старую

Единственный действительно полезный инструмент, который я разработал с использованием двунаправленной передачи данных, — это «инструмент пакетной модификации», когда мне нужно удалить или отредактировать большое количество похожих событий.

Например, если нам нужно по какой-то причине менять имя учителя в течение всего года, я импортирую все события для ряда классов, заменяю имя в электронной таблице и обновляю календарь занятий . это занимает у меня 5 минут и очень просто, но это очень специфические случаи использования, и я не уверен, что это очень распространено.

В любом случае, я бы не стал называть это «синхронизацией», так как она занимает некоторое время и изменяет их . Я никогда не пытался обновлять электронную таблицу с помощью календаря, поскольку мои календари опыта достаточно надежны, и я считаю, их в качестве исходного источника данных. Как я уже сказал, мы импортируем данные в электронные таблицы каждую неделю только для печати и локального архивирования.

Извините за этот длинный и немного расплывчатый комментарий (это было слишком долго, чтобы вписаться в обычный комментарий 500 chrs 😉

Нет, нет И хотя многие вопросы, касающиеся службы календаря Apps Script, были решены (часовые пояса, события на весь день, запросы и т. Д.), Это все еще довольно сложная задача.

Я знаю, что Серж, главный автор здесь, в SO тега # google-apps-script, разработал довольно некоторые сценарии, включающие службу календаря.

Но я в любом случае не знаю, что сделало двустороннее обновление между календарем и таблицей. Это должно быть трудно. Если вы когда-нибудь, пожалуйста, поделитесь 🙂

Как синхронизировать диаграммы из Google Sheets с документами или слайдами

Google Sheets

Графики — это идеальный способ визуального представления данных из электронной таблицы. Если вы хотите вставить диаграмму из существующей электронной таблицы в файл Документов или Слайдов, вы можете синхронизировать ее с Google Sheets.

Во-первых, убедитесь, что у вас есть таблица Google Sheets, которая содержит хотя бы одну диаграмму. Вы можете следовать нашим инструкциям, чтобы вставить диаграмму вручную или с помощью функции Google Explore .

В этом руководстве мы будем использовать Google Docs для синхронизации диаграмм из таблиц, хотя для слайдов процесс идентичен.

Запустите браузер, перейдите в Документы Google , а затем откройте документ, в который вы хотите синхронизировать диаграмму из Листов.

Нажмите Вставка> Диаграмма> Из листа, чтобы открыть окно выбора диаграммы.

Нажмите «Вставить», нажмите «Диаграмма», а затем выберите «Из листов».

Откроется список всех таблиц, сохраненных на вашем Google Диске. Найдите таблицу с нужной вам диаграммой и дважды щелкните по ней.

Дважды щелкните электронную таблицу, содержащую нужную диаграмму.

Все графики в электронной таблице появятся в окне. Выберите тот, который вы хотите, а затем нажмите «Импорт», чтобы добавить его в ваш документ. Если на листе нет диаграмм, просто нажмите кнопку «Назад» и выберите другой файл.

Нажмите на диаграмму, которую хотите вставить, и нажмите «Импорт».

Как только диаграмма будет вставлена ​​в документ, щелкните по ней, а затем перетащите любой из синих квадратов, чтобы изменить его размер и вписать в документ.

Нажмите на график и перетащите маленькие синие квадраты, чтобы изменить его размер.

Хотя диаграмма не обновляется в режиме реального времени, вы видите уведомление при каждом изменении данных в таблицах. Просто нажмите «Обновить» в правом углу диаграммы в вашем документе и дождитесь его обновления.

Нажмите «Обновить».

Это все, что нужно сделать! Если вы хотите добавить больше диаграмм из других электронных таблиц, просто повторите описанные выше шаги и вставьте столько, сколько вам нужно.

Читайте так же:
Как убрать синхронизацию в outlook 2013

Интеграция Битрикс24 с системой учета времени в Google Spreadsheet

Алексей Шкарупа

Похожая традиция есть и у меня. Каждый год 30 декабря я собираю статистику по проектам выполненным ИНТЕРВОЛГОЙ за год. По каждому проекту вычисляю важный финансовый показатель: стоимость часа разработчика в проекте. Он показывает насколько каждый проект для нас выгоден, и в каких мы допустили серьезные просчеты в оценках. Проблема в том, что управленческие решения на основе этой метрики нужно принимать намного чаще, чем раз в год.

Исторически сложилось

Более 5 лет наши сотрудники пишут в в Google-таблицах ежедневные отчеты, за которые ставятся оценки. Там же у нас KPI, заплаты, выработка.

Из десятка таких отчетов (по 12 листов-месяцев в каждом) я собираю данные в 1 таблицу, очищаю от мусора и пытаюсь отнести каждую запись о потраченном времени к конкретному проекту. На разовый подсчет такой статистики 5 лет назад требовалось не менее 4-х часов. С ростом штата эта цифра быстро выросла.

Задача #1. Считать статистику по потраченному времени более оперативно и с меньшими трудозатратами.

Была еще одна проблема, которую хотелось исправить — отчет для постановщиков задач. До сих пор узнать, сколько времени потрачено на задачу можно было, только спросив у исполнителя голосом. Исполнителю в свою очередь приходилось идти в отчет и искать “хвосты” этой задачи.

Задача #2. Получать информацию /отчет о потраченном времени для постановщиков задачи без дополнительных трудозатрат со стороны исполнителя.

Решения и подводные камни

Решение пришло само собой: учет времени в Битрикс24.

  • отказываться от отчетных файлов мы не хотели (помимо потраченного времени там есть KPI и другие важные данные);
  • дублирование руками — чистой воды muda;
  • известна пара багов:
    • две задачи могут одновременно иметь статус «выполняется»,
    • иногда руководитель и подчиненный видят разный статус выполнения.

    Хочу обратить внимание на “теоретическую” простоту желаемого решения. Теоретическую потому, что компоненты этой схемы в том или ином виде реализуемы.
    Но вылезло много подводных камней.

    OAuth повсюду.

    И Google, и Битрикс24 требуют для работы подтвердить, что вы это вы, а не робот, который работает от Вашего имени. Мало того, что сам механизм ужасно неудобен для программиста, так еще и без человека не работает.

    Вывод : никакого выполнения операций по расписанию. Обязательно нужен кто-то перед браузером, авторизованный и в Google, и в Битрикс24.

    Права доступа

    В Битрикс24 куда ни плюнь, все завязано на права доступа. Это настоящий ад. В самых неожиданных местах вдруг выясняется, что вы не имеете доступа к задаче, которую делал Ваш подчиненный для соседнего отдела.
    Скажу больше, каждый сотрудник может создать “закрытую невидимую” группу, и даже администратор портала не сможет ее увидеть, если не включит “режим бога”.

    В итоге сотрудник задачу в такой группе делает, время записывает, а вы к задаче доступа не имеете и, соответственно, не можете в нее перенести время или посчитать в отчетах.

    Вывод : строить отчет в разрезе сотрудников или вообще всех проектов без потери данных может только администратор.

    “Текущий” пользователь

    Эта особенность Битрикс24 доставила больше всего неудобств. Допустим, существует задача, которую делает сотрудник Вася, и у вас к ней даже есть доступ. Вы устроили совещание по этой задаче и решили зафиксировать потраченное время самостоятельно (за себя и за Васю). Думаете это возможно?

    А вот и невозможно. Все операции в Битрикс24 (и по REST API тоже) выполняются от имени текущего авторизованного пользователя. В случае REST API от имени того, кто предоставил авторизацию. Поэтому записать время вы можете только на себя.

    Вывод : каждый сотрудник должен выполнять синхронизацию самостоятельно.

    Заявляемая и реальная функциональность

    Отчеты по потраченному времени в Битрикс24 Вам не помогут. Они там конечно, есть но…
    Но относят все время из задачи на непосредственного исполнителя. А ведь задачу могут делать 2-3-4 человека. И каждый тратит/записывает время. Но в отчете вы увидите у всех 0, а у главного исполнителя — полную сумму.

    Вывод : отчеты придется “переписать”.

    Суровая реальность

    Вернемся к схеме. Теперь она приобрела вот такой вид:

    Для поддержки этой схемы мы немного модифицировали сами отчетные файлы. Ранее в них присутствовала колонка “название проекта” и с группировкой по ней возникали проблемы (пропуски, опечатки, различное написание). Мы заменили ее на “ID задачи или ссылка на нее”.

    Это позволило точно сопоставить потраченное время с задачей, а, как следствие, с проектом.

    Как вы лодку назовете , так она и поплывет. Наше приложение мы назвали “Потрачено” 🙂

    Технологии: Bitrix24 REST API, Google Spreadsheets API, React

    При разработке хотелось избавиться от необходимости авторизации хотя бы в одной из систем Google/Битрикс24. Google-авторизация оказалась проще. Решили сделать приложение 2-го типа для Битрикс24, а в нем дополнительную авторизацию в Google. Такое приложение не требует программирования отдельной авторизации в Битрикс24.

    Итого минус 1 блок в нашей схеме.

    Общение с таблицей-отчетом происходит через Google Apps Script API https://developers.google.com/apps-script/ .

    Для успешной работы с отчетным листом сотрудник должен быть авторизован в аккаунте Google и указать в приложении ID документа-таблицы. В интерфейсе, если все области горят зеленым, значит данные подходят и можно приступать к синхронизации. Остается нажать кнопку «Синхронизировать рабочее время».

    Мы заранее понимали, что JS-кода будет очень много. Так много, что в нем черт ногу сломит. Чтобы хоть немного все структурировать решили попробовать связку фреймворков React и Flux.

    React+Flux дает ряд преимуществ при разработке приложений подобного рода. В нашем случае увесистая “модель” ворочает большим (конечно, если речь идет о JS) количеством данных, получаемых и отправляемых двумя асинхронными API.
    Вдобавок к этому, интерфейс приложения должен вовремя, правильно и красиво отреагировать на то, что происходит как со стороны Битрикс24, так и со стороны Google.

    Подробнее о синхронизации

    Итак, имеем 2 независимые системы: отчетные файлы и Битрикс24. Данные в каждой из систем могут изменяться независимо. Возникают 2 вопроса:

    1. Как сопоставить записи в отчетах и их аналоги в Битрикс24?
    2. Как понять какая из тысяч строк в отчете изменилась с момента последней синхронизации?

    К сожалению в Битрикс24 не нашлось места куда бы могли сохранить служебные данные для ответов на эти вопросы. Пришлось изобретать велосипед.

    По каждой строке таблицы-отчета на стороне Google вычисляются уникальный идентификатор строки (XML_ID) и контрольная сумма (VERSION). Эти данные мы добавляем прямо в комментарий к записям о временных затратах.

    Поле VERSION помогает “экономить” запросы. Каждое удаление или вставка отдельной записи о затраченном времени делается отдельным асинхронным запросом. Это долго и можно упереться в лимиты API. Если вывернуться наизнанку, можно отправлять их пакетами по 50 штук. Но кода становится больше в разы, а его поддержка усложняется на порядок.

    В процессе разработки “Потрачено” была написана собственная обертка для отправки запросов пакетами. Она самостоятельно занимается контролем их количества, объединением порций получаемых данных и т.п. Тут Вам и DRY , и задел для следующих проектов.

    О чем забывают проектируя “волшебный интерфейс”

    При синхронизации может возникать десяток коллизий. Расскажем о некоторых из них.

    Коллизия “Записали время не в ту задачу”.

    В отчете указали время по задаче X, синхронизировали. Опомнились, что это не та задача. Изменили задачу на Y в отчете и снова синхронизировали.

    Если ничего не предпринять, время потраченное на одну и ту же работу окажется в 2-х задачах, ведь нигде не хранится информация об изменениях в отчете. Возникает коллизия если задача X больше нигде не фигурирует и приложение вообще не узнает что нужно рассматривать эту задачу при синхронизации.

    В решении этой коллизии нам помогает специальное хранилище в Битрикс24. В хранилище мы складываем все задачи, которые упоминались в отчете за последние несколько месяцев.

    Коллизия “Очистка строки отчета”.

    В отчет можно не только вписывать свои подвиги и делать в них правки, но и удалять их из отчета вовсе (бывает по-разному). При этом, как узнать, что где-то в корпоративном портале осталась запись о затраченном времени, которую пора уничтожить?

    Решение: из отчета мы забираем не только заполненные строки, но и все пустые. У пустых строк остается все тот же XML_ID, который не зависит от заполнения, а значит ему по-прежнему может соответствовать что-то в кор. портале. Дальше дело техники.

    Коллизия “не положено”.

    Бывает так, что все шло хорошо, задачу делали, вписывали и синхронизировали, но вдруг по каким-то причинам в Битрикс24 были изменены настройки доступа. Теперь сотрудник, а соответственно и “Потрачено” от его имени, не имеет прав вписать или отредактировать время. Синхронизация проходит не полностью, что-то упущено, состояния отчета и портала разные. Чтобы отслеживать подобные ошибки, строки отчета красятся разными цветами. Это позволяет сразу после синхронизации заглянуть в отчет и проверить, все ли прошло гладко.

    Кроме того, “Потрачено” отправляет самому синхронизирующему всплывающее уведомление о проблеме, а для ускорения решения проблемы с правами доступа (если проблема в них) вычисляет постановщика задачи, которую не удалось синхронизировать, и пишет ему в чат о случившейся проблеме.

    Коллизия “задача-сирота”

    Если выполняемая задача не принадлежит проекту, постановщику такой задачи приходит предупреждение.

    Результаты

    Разработка приложения велась 2 месяца. Еще 2 месяца подчищались баги и писались обходные пути для коллизий. Весь процесс занял 205 рабочих часов. #Wasted Своих целей мы достигли и теперь намного оперативнее делаем выводы о расходе времени и ставке часа в проекте.

    Разработка приложений для Битрикс24 дело не для слабонервных. Тем более если внутри интеграция с внешней системой. При этом сама платформа совсем не дружелюбна.

    С другой стороны, разработка подобных приложений может быть хорошим решением если ваша задача состоит в консолидации информации и расширении типовых возможностей облачного портала.

    Мы готовы и умеем решать нетиповые задачи работы с данными, построения отчетов и формирования управленческой отчетности для Битрикс24. Расскажите о своей задаче и мы предложим решение!

    голоса
    Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector