使用 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
我正在尝试使用 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