Страницы: 1
RSS
Запрос Power Query к файлу на Яндекс Диске, Совместная работа с файлом с запросом Power Query
 
Добрый день!

Знаю, что не рекомендуется повторять вопрос в разных форумах. Приношу извинения. Но не получил ответа на дружественном форуме.

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

Владелец сам вносит изменения в файл источник. Он не знает PQ, ему нужна только «кнопка Обновить», чтобы можно было пользоваться результатом. Запрос должен написать Программист, который работает на удаленке.

Вопрос.
Можно ли и если «можно», то как написать запрос, чтобы он работал и у Владельца, и у Программиста?

Спасибо.

Ссылка http://www.excelworld.ru/forum/2-50998-1
 
Понимаю что скорее всего вопрос уже не актуален, но подключить можно.
Работаю в браузере яндекса. Копируем ссылку на файл в яндекс диске, нажимаем кнопку скачать.

Из загрузок в браузере нажимайте правкой кнопкой мыши и в выпадающем списке копируйте ссылку на файл

Создаем в excel запрос из интернета и вставляем туда полученную ссылку

И получаем подключение к файлу напрямую с яндекса.

Остается вопрос как долго будет жить эта ссылка у Яндекса. Возможно ссылка активна только какое-то время.
Пробовал менять данные в файле, повторно загружать его на диск заменяя старый. Обновление работает.
Конечно лучше не использовать яндекс диск для такого. Уж лучше хранить файлы на FTP.  
 
Добрый день!
Вопрос все еще актуален.

Подскажите, пожалуйста, ссылка на файл на Яндекс диске - уникальна? Имеет ли значение, кто ее "возьмет" - Владелец или Программист?

Цитата
Xcedorg написал:
Уж лучше хранить файлы на FTP.

Например, где?
 
Цитата
написал:
Остается вопрос как долго будет жить эта ссылка у Яндекса. Возможно ссылка активна только какое-то время.
Эта ссылка живет меньше двух часов.
В содержание URL включается параметр: expires=1730293205
Это количество секунд с начала эпохи UNIX (1 января 1970 года).

Xcedorg, вы не нашли еще какого-нибудь способа тягать данные с Я.Диска в Power Query?
 
del
Изменено: nilske - 30.10.2024 19:23:20
 
Цитата
написал:
Xcedorg, вы не нашли еще какого-нибудь способа тягать данные с Я.Диска в Power Query?
Нашел, есть способ использовать API диска. С незначительными нюансами.
Код
Источник = Json.Document(Web.Contents("https://cloud-api.yandex.net/v1/disk/resources/download?path=app%3A%2Fcontact.xlsx;,
 [Headers=[Accept="application/json", Authorization="....."]])),
Видимо надо написать небольшую статью.
Вечером из дома напишу инструкцию.
 

Сначала про небольшой нюанс. На диске файл из которого будем получать данный будет лежать не там где вы захотите в папке /Приложения/<название приложения>/

1.      Идём на страницу https://oauth.yandex.ru/client/new/ для создания нового приложения

2.      Вводим название нового приложения. Я назову GET_deals_opt

3.      Ставим галочку на Веб-сервисы

4.      В Redirect URI вставляем https://oauth.yandex.ru/verification_code

5.      В «Доступ к данным» вставляем cloud_api:disk.app_folder

6.      Указываем почту для связи.

7.      Жмем. Создать приложение

Получаем вот такие данные:

GET_deals_opt - Надо для создание папки на диске
Создано: 31 октября 2024
ClientID
29bfafb6312348a8846ccb660c947616 - нужен для получения токена


Теперь открываем новую вкладку и вставляем туда ссылку https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>

Вставляйте свой ClientID

После того как перешли по этой ссылке нам надо авторизоваться под аккаунтом яндекса и мы получим токен

y0_AgAAAAACTevUAAy0kAAAAAEWq_FxAAA0KqcCtBFJvLwynpJZVKgIgDpvE­g

В начале писал про нюанс. Надо создать папку на яндекс диске "Приложения", в ней создать папку с названием своего приложения у меня это GET_deals_opt и в эту папку уже можете закидывать excel файлы. Я туда закинул deals.xlsx его и будем получать.

Теперь уже в powerQuery создаем пустой запрос называем его как нам нравится и вставляем туда

Код
let
  Источник = Json.Document(Web.Contents("https://cloud-api.yandex.net/v1/disk/resources/download?path=app%3A%2Fdeals.xlsx",
             [Headers=[Accept="application/json", Authorization="y0_AgAAAAACTevUAAy0kAAAAAEWq_FxAAA0KqcCtBFJvLwynpJZVKgIgDpvEg"]])),
  href = Источник[href],
  file = Excel.Workbook(Web.Contents(href), null, true)
in
  file 

токен и название файла поставите свой.

получите таблицу

Изменено: Xcedorg - 31.10.2024 20:11:13
Страницы: 1
Наверх