Содержание:
Если вы или ваша компания храните данные в облаке OneDrive или на портале компании SharePoint, прямое подключение к ним с помощью Power Query в Excel или из Power BI может оказаться на удивление сложной задачей.
Когда я однажды столкнулся с подобной проблемой, то с удивлением обнаружил, что «законных» способов ее решения не существует. В список доступных источников данных в Excel и даже в Power BI (где набор коннекторов традиционно шире) почему-то не включена возможность подключения к файлам и папкам OneDrive.
Так что все предложенные ниже варианты являются в той или иной степени «костылями», требующими небольшой, но ручной «доводки напильником». Но у этих костылей есть большой плюс – они работают 🙂
В чем проблема?
Краткое введение для тех, кто провел последние 20 лет в коме не в теме.
OneDrive — это служба облачного хранения данных от Microsoft, которая доступна в нескольких вариантах:
- OneDrive персональный – для обычных (некорпоративных) пользователей. Они дают вам 5 ГБ бесплатно + дополнительное место за небольшую ежемесячную плату.
- OneDrive для бизнеса — опция для корпоративных пользователей и подписчиков Office 365 с гораздо большим доступным объёмом (от 1 ТБ и более) и дополнительными функциями вроде хранения версий и т. д.
Особым случаем OneDrive для бизнеса является хранение данных на корпоративном портале SharePoint — в этом сценарии OneDrive является, по сути, одной из библиотек SharePoint'а.
Доступ к файлам можно получить либо через веб-интерфейс (сайт https://onedrive.live.com или корпоративный сайт SharePoint), либо путем синхронизации выбранных папок с вашим ПК:
Обычно эти папки хранятся в профиле пользователя на диске С – путь к ним выглядит примерно так С: ПользователиИмя пользователяОдин диск). Специальная программа следит за актуальностью файлов и синхронизацией всех изменений – АOneDrive, джентльмен (синее или серое облако в правом нижнем углу экрана):
А теперь главное.
Если нам нужно загрузить данные из OneDrive в Excel (через Power Query) или в Power BI, то мы, конечно, можем указать локальные файлы и папки для синхронизации в качестве источника обычным способом через Получить данные – Из файла – Из книги/Из папки (Получить данные — Из файла — Из книги/папки)Но это не будет прямая ссылка на облако OneDrive.
То есть в дальнейшем при изменении, например, файлов в облаке другими пользователями, мы сначала нужно синхронизировать (это происходит долго и не всегда удобно) и только затем обновите наш запрос Power Query или модель в Power BI.
Естественно, возникает вопрос: как импортировать данные из OneDrive/SharePoint напрямую, чтобы данные загружались непосредственно из облака?
- Открываем книгу в нашем Excel — локальную копию из синхронизированной папки OneDrive как обычный файл. Или откройте сайт сначала в Excel Online, а затем нажмите на кнопку Открыть в Excel (Открыть в Excel).
- Перейдите на Файл – Подробности (Файл — Информация)
- Скопируйте путь к облаку в книгу кнопкой копировать путь (Копировать путь) в названии:
- В другом файле Excel или в Power BI, где вы хотите заполнить данные, выберите команды Получить данные – Из Интернета (Получить данные — из Интернета) и вставьте скопированный путь в поле адреса.
- Удалить в конце пути ?web=1 и нажмите на OK:
- В появившемся окне выберите способ авторизации Аккаунт организации (Учетная запись организации) и нажмите на кнопку войдите (Авторизоваться):
Введите наш рабочий логин-пароль или выберите корпоративный аккаунт из появившегося списка. Если все делаете правильно, то надпись войдите должен измениться на Войдите как другой пользователь (Войдите под другой учетной записью пользователя).
- Нажмите на кнопку связи (Подключить).
Дальше все как при обычном импорте книги – выбираем для импорта необходимые листы, смарт-таблицы и т.д.
Вариант 2. Подключитесь к файлу из OneDrive Personal.
Для подключения к книге в личном (некорпоративном) облаке OneDrive подход будет другой:
- Открываем содержимое нужной папки на сайте OneDrive и находим импортированный файл.
- Щелкните правой кнопкой мыши по нему и выберите команду Введение (Встроить) или выберите файл и выберите аналогичную команду в верхнем меню:
- На появившейся справа панели нажмите кнопку Создавай и скопируйте сгенерированный код:
- Вставьте скопированный код в Блокнот и «закончите файлом»:
- Удалите все, кроме ссылки в кавычках.
- Удалить блок cid=XXXXXXXXXXXX&
- Заменяемое слово вставлять on скачать
В результате исходный код должен выглядеть так: - Удалите все, кроме ссылки в кавычках.
- Дальше все так же, как и в предыдущем способе. В другом файле Excel или в Power BI, где вы хотите заполнить данные, выберите команды Получить данные – Из Интернета (Получить данные — из Интернета), вставьте отредактированный путь в поле адреса и нажмите «ОК».
- Когда появится окно авторизации, выберите опцию Windows и при необходимости введите пароль для входа в OneDrive.
Вариант 3. Импортируйте содержимое всей папки из OneDrive для бизнеса.
Если вам нужно заполнить в Power Query или Power BI содержимое не одного файла, а сразу целой папки (например, с отчетами), то подход будет немного проще:
- В Проводнике кликаем правой кнопкой мыши по интересующей нас локальной синхронизированной папке в OneDrive и выбираем Посмотреть на сайте (Посмотреть онлайн).
- В адресную строку браузера скопируйте начальную часть адреса – до слова / _макеты:
- В книге Excel, куда вы хотите загрузить данные, или в отчете Power BI Desktop выберите команды Получить данные – из файла – из папки SharePoint (Получить данные — Из файла — Из папки SharePoint):
Затем вставьте скопированный фрагмент пути в поле адреса и нажмите OK:
Если появится окно авторизации, то выберите тип Счетом Microsoft (Учетная запись Microsoft)нажмите на кнопку войдите (Авторизоваться), а затем, после успешного входа, на кнопку связи (Подключить):
- После этого все файлы из SharePoint запрашиваются и загружаются и появляется окно предварительного просмотра, в котором можно смело нажать Преобразование данных (Преобразование данных).
- Дальнейшее редактирование списка всех файлов и их объединение происходит уже в Power Query или в Power BI стандартным способом. Чтобы сузить круг поиска только до нужной нам папки, можно воспользоваться фильтром по столбцу. Путь к папке (1) а затем разверните все содержимое найденных файлов с помощью кнопки в столбце Содержание (2):
- Сборка таблиц из разных файлов с помощью Power Query
- Что такое Power Query, Power Pivot, Power BI и как они могут вам помочь
- Сбор данных со всех листов книги в одну таблицу