使用$ filter与Microsoft Graph Excel API

时间:2017-04-06 07:16:50

标签: excel microsoft-graph

使用Microsoft Graph,我可以从表中访问行:

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

documentation州:

  

此方法支持OData查询参数以帮助自定义响应。

能够使用$select查询参数:

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

但是如何使用$search$filter查询参数?例如,我想搜索列'employeeName'包含字符串"John"的行。

2 个答案:

答案 0 :(得分:4)

Microsoft Graph包含有关可选查询参数here的一些文档。还有更多关于OData查询标准here的文档。

Microsoft Graph仅允许$ search查询参数与消息和人员集合一起使用。以下是查找包含“pizza”的所有邮件的示例:

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

$ filter查询参数没有此限制。以下是查找名称以“A”开头的所有用户的示例:

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

答案 1 :(得分:2)

为了从Excel过滤数据,您应首先获得工作簿会话ID:

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

BODY => {persistChanges:false}

如果要保留对工作表所做的任何更改,可以将persistChanges的值更改为true。这将返回一个id,您将在应用过滤器时将其用作标题的一部分:

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 and the Graph API

的一般性参考