Использование фильтра $с 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