使用 MS Graph 通过 Sharepoint 读取 Excel 内容

Using MS Graph to Read Excel Contents Through Sharepoint

我正在尝试使用 MS Graph 来解析 excel 文件的内容并将数据与其他业务线应用程序同步。我 运行 遇到的问题实际上是获取 excel.

中的数据

我正在使用 ClientCredentialProvider 对 Azure AD 应用程序注册进行身份验证,它在我的租户中具有 FullControl 和 Read.All 权限来创建我的 GraphServiceClient,并且可以成功查询站点通过 ID,甚至可以看到我试图访问的文档库,但 Items 显示为空。见下文

var result = _graphService.Client
                .Sites["my-site-id"] // This works                
                .Drives["site-drive-id"] // This works to find the document library
                //.Lists["list-id-corresponding-to-folder"] // This also works to find that folder
                .Items // ****This is null****
                .Request()
                .GetAsync()
                .Result;

我尝试使用 Lists 属性(如上所述),因为据我所知,SharePoint 中的文档库实际上只是列表,但 Items 枚举也没有产生任何结果.

我在 Microsoft 的网站上找不到关于此用例的文档,并且我注意到使用 MS Graph Explorer 时返回的对象没有“项目”字段(或 Microsoft.Graph.Site class),但我认为有 一些 方法来填充此字段,因为它是在 Microsoft.Graph 命名空间中实现的。不确定我是否缺少某些权限步骤或什么,但如果我可以使用 FullControl 访问该站点,我应该能够访问其所有内容...

我不能使用 Client.Me(个人驱动器)作为源位置,因为 1) 该应用程序不 运行 在我的权限下,并且 2) 需要读取多个文件;这个想法只是提供所需的 site/drive/item ID 并获取文件。

还有其他方法可以解决这个问题吗?

@broccoli_rob,

MS Graph 没有公开枚举驱动器中所有项目的功能。相反,您只能 list children or get item by id.

我们建议您使用 /drive/root:/{item-path} 获取文件夹中的项目。您可以在 Graph 资源管理器中验证端点:

BR