Перезагрузка таблицы Google Sheet. Видит старые данные

vinznsk

Client
Регистрация
16.09.2014
Сообщения
96
Благодарностей
19
Баллы
8
Добрый день, коллеги!

Возник такой вопрос. Пытаюсь загружать данные в Google Sheets. Делаю одну итерацию, за ней - вторую. Выполняя второй раз проект, скрипт видит старые данные Google Sheet.

Например:

Есть таблица:
URL | Посещаемость
URL заполнены, Посещаемость - пусто везде

1. Запустил скрипт, который собрал данные и заполнил таблицу (циклом проходит каждую колонку, получает "посещаемость" и записывает напротив УРЛ пропуская непустые ячейки)
2. Тут же руками удалил эти данные
3. Запустил скрипт еще раз
4. Скрипт выдал что все ячейки уже заполнены.

Можно ли перезагрузить как-нибудь таблицу, чтобы начинался парсинг сначала сбросив кэш Google Таблицы при этом??
 

Nike59

Client
Регистрация
05.08.2011
Сообщения
122
Благодарностей
122
Баллы
43
Кэш почистите перед новой загрузкой страницы.
 

vinznsk

Client
Регистрация
16.09.2014
Сообщения
96
Благодарностей
19
Баллы
8

molotok

Client
Регистрация
17.04.2015
Сообщения
733
Благодарностей
358
Баллы
63
Тоже бывает дублирование данных в таблице. Но я использую гугл таблицу всего лиш как место для вывода и показа данных, сами данные хранятся в локальной базе данных, и выгружаются в гугл таблицу в конце работы шаблона. Перед выгрузкой гуг таблица полность очищается и заполняется данными из БД.

В случае дублирования данных в гугл таблице - просто удаляю их и жду пока шаблон перезапишет данные.
 

vinznsk

Client
Регистрация
16.09.2014
Сообщения
96
Благодарностей
19
Баллы
8
Никак не могу решить проблему. Если какой-нибудь способ отключать таблицы (отвязывать), чтобы они заново подгружались при запуске скрипта? Такое ощущение, что если скрипт запускаешь раньше, чем через 5 минут, то данные старые подтягиваются

Да, есть настройка таймаут очистки. Но можно ли как-нибудь очистить эти таблицы по окончанию проекта?
 

bedl0

Client
Регистрация
07.12.2012
Сообщения
244
Благодарностей
56
Баллы
28
Никак не могу решить проблему. Если какой-нибудь способ отключать таблицы (отвязывать), чтобы они заново подгружались при запуске скрипта? Такое ощущение, что если скрипт запускаешь раньше, чем через 5 минут, то данные старые подтягиваются

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

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Апну тепу, проблема актуальна, столкнулся с тем же. Данные в гугл таблице изменились, а проект все равно подтягивает старые, пока не перезапустишь зенностер.
Удалось как-то по фиксить это?
эти таблицы предназначены для формирования данных в таблицах из зеннопостера, а не для интерактивного взаимодействия таблиц и зеннопостера.
Поэтому надо просто не менять таблицы вне зенки и не будет проблем.
для интерактивного использования есть базы данных и внешние формы для них.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
В работе с Google Sheets надо паузы большие ставить после записи и получения данных. Минута-две...
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Апну тепу, проблема актуальна, столкнулся с тем же. Данные в гугл таблице изменились, а проект все равно подтягивает старые, пока не перезапустишь зенностер.
Удалось как-то по фиксить это?
Постер заботает только со своей копией, пока её не требуется выгрузить. Нельзя со стороны загружать данные в таблицу.
Используйте базу данных, там имеется встроенный механизм блокировок и всё необходимое для работы.
 

bedl0

Client
Регистрация
07.12.2012
Сообщения
244
Благодарностей
56
Баллы
28
Спасибо за потраченное время на столь "полезные" советы, но это господа какая-то дич, на кой мне бд если нуждно просто свежие данные из таблицы дернуть при запуске шаблона.

Решение для потомков:
GET запрос, сохранить как файл.
CSV: https://docs.google.com/spreadsheets/d/KEYTABLE/export?format=csv&usp=sharing
XLSX: https://docs.google.com/spreadsheets/d/KEYTABLE/export?format=xlsx&usp=sharing
 
  • Спасибо
Реакции: Таксист

Artproma

Client
Регистрация
01.07.2014
Сообщения
63
Благодарностей
3
Баллы
8
Потомок пришел. Жуть как нужно обновление.
А скачать, через Get, не получается. Где косяк? подскажите...
 

Вложения

  • 10,5 КБ Просмотры: 76

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Потомок пришел. Жуть как нужно обновление.
А скачать, через Get, не получается. Где косяк? подскажите...
Нет доступа к таблице.

P.S. В скором времени должна быть добавлена функция ручного подтягивания данных из Google Таблицы, аналог кнопки в настройках (в 7.6.0.0 возможно не войдёт, но в одной из следующих версий будет внедрено).
 
  • Спасибо
Реакции: Artproma

Artproma

Client
Регистрация
01.07.2014
Сообщения
63
Благодарностей
3
Баллы
8
Доступ к файлу предоставил.
Там ничего такого нет. Как скачать файл, вот в чем вопрос.

P.S. В скором времени должна быть добавлена функция ручного подтягивания данных из Google Таблицы, аналог кнопки в настройках (в 7.6.0.0 возможно не войдёт, но в одной из следующих версий будет внедрено).
Обновление нужно уже сейчас. А релиз с ним, я так понимаю, не скоро...

Как заставить зенку обновить данные?..
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Как скачать файл, вот в чем вопрос.
Уберите из URL часть /edit#gid=0, чтоб он был таким же, как в примере из этого сообщения.

Как заставить зенку обновить данные?..
На сегодня, стандартными средствами ZP, принудительно заставить загрузить данные из удалённой таблицы нельзя. ZP делает это самостоятельно.
 
  • Спасибо
Реакции: Artproma

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
  • Спасибо
Реакции: Artproma

Artproma

Client
Регистрация
01.07.2014
Сообщения
63
Благодарностей
3
Баллы
8
Уберите из URL часть /edit#gid=0, чтоб он был таким же, как в примере из этого сообщения.
На сегодня, стандартными средствами ZP, принудительно заставить загрузить данные из удалённой таблицы нельзя. ZP делает это самостоятельно.
Странно, но на другом, нужном мне, проекте скачивается не файл в нужной кодировке, а файл edit без расширения. Я думаю, что я понял в чем дело. Там ограничены права. Буду первоначально входить в аккаунт.

Касаемо второго ответа: У меня проект запускается раз в 15 минут. И при перезапуске данные не обновляются.
 

Artproma

Client
Регистрация
01.07.2014
Сообщения
63
Благодарностей
3
Баллы
8

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Странно, но на другом, нужном мне, проекте скачивается не файл в нужной кодировке, а файл edit без расширения. Я думаю, что я понял в чем дело. Там ограничены права. Буду первоначально входить в аккаунт.
Это из-за того, что есть часть /edit#gid=0 в ссылке.

Касаемо второго ответа: У меня проект запускается раз в 15 минут. И при перезапуске данные не обновляются.
Проверьте, что в настройках программы включено "Всегда загружать изменения из облака". Если таблица большая, то попробуйте увеличить "Таймаут загрузки таблицы из облака".
85782
 
  • Спасибо
Реакции: Artproma

Artproma

Client
Регистрация
01.07.2014
Сообщения
63
Благодарностей
3
Баллы
8
Скачать-то я скачал, а вот как получить данные со второго листа.
Если не сложно, подскажите, вдруг есть гет запрос, чтоб скачать определенную Гугл страницу. Или можно как-то в экселе указать страницу.
Куда не лезу везде костыли, не получается. Всю голову сломал...
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Скачать-то я скачал, а вот как получить данные со второго листа.
Только делать отдельный запрос на скачивание необходимого листа.

UPD
При экспорте Excel качает все листы.
CSV - только один лист за раз.
Пример.
 
Последнее редактирование:

Artproma

Client
Регистрация
01.07.2014
Сообщения
63
Благодарностей
3
Баллы
8
Последнее редактирование:

Artproma

Client
Регистрация
01.07.2014
Сообщения
63
Благодарностей
3
Баллы
8
А как скачать 2 лист?
Лист 2: https://docs.google.com/spreadsheets/d/1x8lkcm9rwHHxOe1aJ6CHeyt9eO4bDWorPzRIPijeDQY/edit#gid=2033554393
Дописываю в конце что угодно (и слэш ставлю и без, пробовал варианты с &), не срабатывает. Появляется файл без расширения.

Может какой код есть, чтоб переподключить таблицу. Просто экшн не обновляет данные.
 
Последнее редактирование:

bedl0

Client
Регистрация
07.12.2012
Сообщения
244
Благодарностей
56
Баллы
28
А как скачать 2 лист?
Лист 2: https://docs.google.com/spreadsheets/d/1x8lkcm9rwHHxOe1aJ6CHeyt9eO4bDWorPzRIPijeDQY/edit#gid=2033554393
Дописываю в конце что угодно (и слэш ставлю и без, пробовал варианты с &), не срабатывает. Появляется файл без расширения.

Может какой код есть, чтоб переподключить таблицу. Просто экшн не обновляет данные.
Есть на C#, скачивает файл по ссылке urlGoogleTable и помешает его в таблицу gTab, по поводу листов не подскажу, но вот по такой ссылке качается второй лист.


Код ниже скачает то что вам необходимо и положит в таблицу в gTab в ZP

C#:
var googleTableValue = project.Variables["urlGoogleTable"].Value;
var gTable = project.Tables["gTab"];
var gid = "2033554393";

var downloadUrl = googleTableValue.Replace(Path.GetFileName(googleTableValue).ToString(), "export?format=xlsx&usp=sharing" + "&gid=" + gid );
var sourceFileName = ZennoPoster.HTTP.Request(ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET, url: downloadUrl, respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.File, Timeout: 50000, DownloadPath: project.Directory);
var rnd = new Random().Next(10000000);
File.Move(sourceFileName, project.Directory + "/" + rnd + ".xlsx");
gTable.Bind(project.Directory + "/" + rnd + ".xlsx");
Thread.Sleep(new Random().Next(1000));
File.Delete(project.Directory + "/" + rnd + ".xlsx");
 
Последнее редактирование:

Artproma

Client
Регистрация
01.07.2014
Сообщения
63
Благодарностей
3
Баллы
8
Спасибо большое.
Буду тестировать
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Если без C#, то можно выполнить запрос на URL https://docs.google.com/spreadsheets/d/KEYTABLE/export?format=csv&usp=sharing&gid=GID
Где KEYTABLE - идентификатор таблицы (пример 13olkcm9rwHHx0znaJ6CHeyt9eO4bDWorPzRIPijennt)
GID - идентификатор листа в таблице (найти можно конце URL адреса, пример - 1259570223)

Основано на этом сообщении от @bedl0
 
  • Спасибо
Реакции: Таксист и Artproma

Artproma

Client
Регистрация
01.07.2014
Сообщения
63
Благодарностей
3
Баллы
8
Спасибо. Протестирую. Пока через костыли решил.
Тупо перепривязка таблицы с задержкой в 7 минут. получается долго, но работает.
Главное быть редактором, раньше я им не был, что создавало больше проблем.
 
Регистрация
26.10.2022
Сообщения
23
Благодарностей
2
Баллы
3
Спасибо за потраченное время на столь "полезные" советы, но это господа какая-то дич, на кой мне бд если нуждно просто свежие данные из таблицы дернуть при запуске шаблона.

Решение для потомков:
GET запрос, сохранить как файл.
CSV: https://docs.google.com/spreadsheets/d/KEYTABLE/export?format=csv&usp=sharing
XLSX: https://docs.google.com/spreadsheets/d/KEYTABLE/export?format=xlsx&usp=sharing
Правильно ли я понял: ты решил вопрос перезагрузки тем, что сохраняешь таблицы на жесткий диск и в этот момент сохранения гугл таблица в онлайне перезагружается? Точнее в зенку загружаются последнее реальное состояние гугл таблицы, а не то, что она закешировала раньше?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)