【问题标题】:How do I get the image of an excel chart using Microsoft Graph API ? from c#如何使用 Microsoft Graph API 获取 excel 图表的图像?来自 c#
【发布时间】:2019-12-17 21:15:06
【问题描述】:

我在c#中实现了以下方法

    public static async Task<WorkbookWorksheetChartsCollectionResponse> GetChart(string idItem, string nameSheet)
    {
        var graphClient = GetAuthenticatedClient();

        var chart = await graphClient.Me.Drive.Items[idItem]
            .Workbook
            .Worksheets[nameSheet]
            .Charts["Chart 1"]
            .Image(640, 480, "fit")
            .Request()
            .GetAsync();

        return chart;
    }

但返回图表the error is时出现以下错误, 这是 microsoft graph api 的课程 class

【问题讨论】:

  • 根据文档,它似乎将图像作为 base64 字符串返回:docs.microsoft.com/en-us/graph/api/…
  • 是的,没错,但是我正在使用 api 库进行的实现是使用它的想法,文档显示了带有 url 的示例,我需要使用 microsoft图

标签: c# api microsoft-graph-api office365api


【解决方案1】:

似乎msgraph-sdk-dotnet (v.1.21.0) 没有为Chart: Image endpoint 生成正确的 URL,并出现以下错误:

URI 中指定的类型“microsoft.graph.image”既不是 基本类型或先前指定类型的子类型 'microsoft.graph.workbookChart'

关于同一问题,可以在ExcelTests.cs 中找到以下评论:

解决方法,因为元数据描述不正确 它返回一个字符串而不是实际的 JSON 对象,并且由于 服务不接受客户端发出的完全限定名称 即使它应该接受 FQN。

以及以下获取图表图像的解决方法

var chartResourceUrl = graphClient.Me.Drive.Items[itemId]
         .Workbook
         .Worksheets[nameSheet]
         .Charts[chartName]
         .Request().RequestUrl;


 var urlToGetImageFromChart = $"{chartResourceUrl}/image(width=400, height=480)";
 var message = new HttpRequestMessage(HttpMethod.Get, urlToGetImageFromChart);
 await graphClient.AuthenticationProvider.AuthenticateRequestAsync(message);
 var response = await graphClient.HttpProvider.SendAsync(message);
 if (response.IsSuccessStatusCode)
 {
     var content = await response.Content.ReadAsStringAsync();
     JObject imageObject = JObject.Parse(content);
     JToken chartData = imageObject.GetValue("value"); 
     //...
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    相关资源
    最近更新 更多