在Microsoft Graph Excel API中使用$ filter

使用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查询参数? 例如,我想search列'employeeName'包含string"John"

Microsoft Graph 在这里有关于可选查询参数的一些文档。 这里还有更多关于OData Query标准的文档。

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') 

为了过滤来自Excel的数据,您应该先获得一个工作簿会话ID:

 POST https://graph.microsoft.com/v1.0/drives/.../workbook/createSession BODY => {persistChanges:false} 

如果您想保留对工作表的任何更改,可以将persistChanges的值更改为true。 这将返回一个标识符,您将在应用filter时将其用作标题的一部分:

 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 

这里有一些关于如何设置标准的参考

关于Excel和Graph API的一般参考