Использование фильтра $с API-интерфейсом Microsoft Graph Excel

С помощью Microsoft Graph я могу получить доступ к строкам из таблицы следующим образом:

/v1.0/drives/..../workbook/worksheets/Sheet4/tables/2/rows

В документации указано:

Этот метод поддерживает параметры запроса OData, чтобы помочь настроить ответ.

Я могу использовать параметр запроса $select:

/v1.0/drives/..../workbook/worksheets/Sheet4/tables/2/rows?$select=values.

Но как я могу использовать параметры запроса $search или $filter? Например, я хочу искать строки, в которых столбец 'employeeName' содержит строку "John".

Ответ 1

В Microsoft Graph есть документация о необязательных параметрах запроса здесь. Там также есть дополнительная документация по стандартам OData Query здесь.

Microsoft Graph позволяет использовать параметр $search query для коллекций сообщений и персонажей. Вот пример, чтобы найти все сообщения, содержащие "пиццу":

GET https://graph.microsoft.com/v1.0/me/messages?$search="pizza"

Параметр $filter query не имеет этого ограничения. Вот пример, чтобы найти всех пользователей с именами, начинающимися с "A":

GET https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'A')

Ответ 2

Для фильтрации данных из Excel сначала необходимо получить идентификатор сеанса книги:

POST https://graph.microsoft.com/v1.0/drives/.../workbook/createSession

BODY => {persistChanges:false}

Вы можете изменить значение persistChanges на значение true, если вы хотите сохранить любые изменения, внесенные на рабочий лист. Это вернет идентификатор, который вы будете использовать в качестве части заголовков при применении фильтра:

POST https://graph.microsoft.com/v1.0/drives/.../workbook/worksheets('Sheet4')/tables(id='4')/columns('employeeName')/filter/apply

HEADER => workbook-session-id: session_Id

BODY => {  criteria: {  filterOn: "Custom",  criterion1: "=John", operator: "Or", criterion2: null }

Наконец, вы можете получить строки, используя:

GET https://graph.microsoft.com/v1.0/drives/.../workbook/worksheets('Sheet4')/tables('4')/range/visibleView/rows?$select=values

HEADER => workbook-session-id: session_Id

Вот несколько рекомендаций по настройке criteria

И общая ссылка о Excel и графическом API