将$filter与Microsoft图形 Excel API 结合使用



使用Microsoft图形,我可以访问表中的行,如下所示:

/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" 的行。

为了从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

以下是有关如何设置条件的一些参考

以及有关 Excel 和图形 API 的一般参考

Microsoft Graph 在此处提供了一些有关可选查询参数的文档。此处还有更多有关 OData 查询标准的文档。

Microsoft Graph 仅允许将$search查询参数用于消息和人员集合。下面是查找包含"披萨"的所有邮件的示例:

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

最新更新