我们有一个大型Excel文件(~10k行),只有几个列在SharePoint Online上托管。其中一列是电子邮件地址,我们希望根据当前用户过滤此列。
使用Microsoft Graph的JavaScript网页会读取所有行。这是非常慢的(有时候> 20秒),因为我们读取整个文件并使用客户端代码进行过滤(通常少于50行的10k行)
Microsoft Graph调用如下所示:
/v1.0/sites/{site}/drives/{id{/items/{id}/workbook/tables/2/rows
任何可能有助于提高性能的建议,例如使用视图,过滤器,网址参数或其他内容(如查找表,powerquery或powerpivot)以某种方式索引Excel和过滤服务器端?
答案 0 :(得分:1)
您可以使用表格列Filter API来过滤值。
POST /workbook/tables/{id|name}/columns/{id|name}/filter/apply
{
filterOn: "Values",
values: ["email@mail.com", "email2@mail.com"]
}
然后,您可以使用this API读取可见范围。
您可以在最后清除过滤器。
如果没有,您只需从未过滤的表中读取您感兴趣的列值即可。这将减少有效负载并有助于提高性能。