Время прочтения: 6 мин.

Если в вашей организации есть интернет-портал Microsoft SharePoint, то вам, несомненно, приходится работать с размещенными на портале данными, которые обычно представлены в виде списков (List). Хотя стандартный интерфейс SharePoint представляет широкие возможности работы с записями списка «на лету», часто необходимо получить срез данных списка на текущую дату, либо проанализировать информацию за период в более «привычном» ПО – например, MS Excel. Рассмотрим два способа получения данных из списка в Excel.

1.  Экспорт данных списка в MSExcel.

Первый, и наиболее простой способ – использовать стандартный функционал SharePoint по выгрузке данных списка:

— На странице нашего списка, во вкладке ленты «Список», в разделе «Подключение и экспорт» выбираем «Экспорт в Excel»:

— далее соглашаемся с тем, что нам будет необходимо приложение, совместимое с Microsoft SharePoint Foundation (т.е. любое приложение MS Office), и видим приглашение открыть или сохранить файл *.iqy:

Файл  веб-запроса (расширение .iqy  — Microsoft Excel Internet Query Format)  содержит информацию о созданном подключении к данным нашего списка. Можно его сохранить для дальнейшего использования, либо сразу открыть в MS Excel (нажав «Включить» в ответ на предупреждение о «возможном нарушении безопасности»):

Открывается новая книга Excel, в которую загружаются все поля данных, видные пользователю в текущем представлении списка SharePoint.

Обратите внимание, что мы получили именованную область «Таблица_owssvr», связанную с нашим запросом: Основной недостаток «встроенного» экспорта списка – это то, что набор полей мы изменить не можем (если в других доступных пользователю представлениях списка набор доступных полей отличается, можно перейти в другое представление и повторить те же действия).

Все колонки имеют те же отображаемые имена, что и поля текущего представления списка, форматы данных выбираются Excel автоматически. Полученный XLS файл мы можем сохранить для дальнейшего редактирования и использования. При необходимости получить актуальные записи списка еще раз, повторять все описанные выше действия уже не нужно. Достаточно открыть сохраненный файл и в меню Excel «Данные» выбрать «Обновить все» или, установив курсор на одну из ячеек с данными, выбрать «Обновить»:

Но возникает еще одна проблема: если записей в списке достаточно много (например,  > 50 тыс.), не все они могут выгрузиться в наш XLS файл, если администратор портала установил для представления соответствующее ограничение (лишние строки будут «обрезаны»). Этих ограничений можно избежать, если не экспортировать данные из какого-либо представления списка, а создать новый запрос к списку в редакторе Power Query.

2. Создание запроса в Power Query.

MS Excel поддерживает удобный и гибкий инструмент для получения и обработки внешних данных из различных источников –  надстройку Power Query. Она поставляется вместе с пакетом MS Office начиная с 2016 версии (для более ранних версий MS Office нужно устанавливать Power Query отдельно).

Нужно перейти на вкладку «Данные» и выбрать пункт «Создать запрос» — «Из других источников»:

Для получения данных выбираем из меню коннектор «Из списка SharePoint» (см. рис.), в появившемся окне набираем адрес нашего сайта SharePoint:

Например, «https://mysite.ru/…./» (можно указывать дочерние сайты через слэш). Далее открывается окно навигатора по сайту, в котором нужно выбрать интересующий список из перечня всех списков сайта (справа показывается предпросмотр его элементов), и нажать кнопку «Изменить»:

Теперь мы попадаем в окно редактора запросов Power Query, в котором и будем далее править наш запрос.

 Здесь доступны все без исключения столбцы списка (включая те, которые не отображаются в видимых пользователю портала представлениях, и ссылочные столбцы, «подтягивающие» данные других списков-справочников).

Удобство редактора Power Query заключается в том, что для создания запросов не обязательно писать их на языке M (который использует редактор), достаточно указывать через графический интерфейс, к какому столбцу данных обратиться и какие действия с ним выполнить, например:

— оставить только нужные столбцы и переименовать их так, как вам удобно,

— отфильтровать записи по различным критериям,  

— заменить символы в строке,  

— поменять формат или кодировку данных в столбце, и т.д.

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

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

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

Выбрав нужные столбцы списка, применив фильтры и преобразование данных, далее по нажатию кнопки «Закрыть и загрузить» сохраняем запрос: Сохранив свой XLS файл, мы всегда сможем обновить данные с портала SharePoint (как указано выше, выбрав пункты меню «Данные» — «Обновить»), или снова открыть запрос в редакторе из меню «Запросы книги» и изменить его.

Итак, мы рассмотрели два простых способа сохранить информацию списка MS SharePoint в формат MS Excel для последующего анализа в привычном для всех аналитиков ПО.

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