Graph API Excel 更新表格行

问题描述 投票:0回答:1

我正在尝试使用 GraphApi 更新表中的一行。根据文档,代码应该如下所示:

using Microsoft.Graph.Models;
using Microsoft.Kiota.Abstractions.Serialization;

var requestBody = new WorkbookTableRow
{
    Index = 99,
    Values = new UntypedString("values-value"),
};

var result = await graphClient.Drives["{drive-id}"].Items["{driveItem-id}"].Workbook.Tables["{workbookTable-id}"].Rows["{workbookTableRow-id}"].PatchAsync(requestBody);

我收到错误消息“找不到您尝试使用的 Api。”

根据文档的http调用看起来像这样,但也不起作用。我在 Graph Explorer 中收到相同的错误消息:

PATCH https://graph.microsoft.com/v1.0/me/drive/items/{id}/workbook/tables/{id|name}/rows/{index}
Content-type: application/json

{
  "index": 99,
  "values": "values-value"
}

如果我在 Graph Explorer 中调用以下命令,它就会起作用:

https://graph.microsoft.com/v1.0/drives/drive-id/items/driveItem-id/workbook/tables/table-id/rows/**itemAt(index=0)**
{
  "values": "values-value"
}

C# 代码是什么样的?

c# microsoft-graph-api
1个回答
0
投票

正确的代码应该是这样的

var requestBody = new WorkbookTableRow
{
    Values = new UntypedArray(new List<UntypedNode>
    {
        new UntypedArray(new List<UntypedNode>
        {
            new UntypedString("column1-value"),
            new UntypedString("column2-value")
        })
    })
};

var result = await graphClient.Drives["{drive-id}"].Items["{driveItem-id}"].Workbook.Tables["{workbookTable-id}"].Rows.ItemAtWithIndex(99).PatchAsync(requestBody);

不幸的是,SDK 没有为端点生成 PatchAsync 方法

https://graph.microsoft.com/v1.0/drives/drive-id/items/driveItem-id/workbook/tables/table-id/rows/itemAt(index=0)
{
  "values": "values-value"
}

请在 Graph .NET SDK 存储库中为此创建一个新问题:

https://github.com/microsoftgraph/msgraph-sdk-dotnet/issues

目前没有解决方法

© www.soinside.com 2019 - 2024. All rights reserved.