簡體   English   中英

如何使用Microsoft圖形API在Excel單元格中添加公式?

[英]how to Add a formula in excel cell using Microsoft graph API?

我正在嘗試使用Microsoft Graph的Excel API將內容添加到Excel中的單元格。 我可以使用PATCH方法添加內容,但是當我嘗試添加公式時,它的行為不像公式。 如果我傳遞類似'formulas': '=sum(2+2)' ,它的行為將不正常。

我得到的結果是剪斷: 在此處輸入圖片說明

這可行嗎?

這是我的代碼:

//Set up workbook and worksheet endpoints
var workbookEndpoint = "https://graph.microsoft.com/v1.0/me/drive/items/" +
    fileId + "/workbook";

var worksheetsEndpoint = workbookEndpoint + "/worksheets";

var patchMethod = new HttpMethod("PATCH");

var summaryTableRowJson = "{" +
    "'formulas': '=sum(2+2)'" +
    "}";

var colNamePatchBody = new StringContent(summaryTableRowJson);
colNamePatchBody.Headers.Clear();
colNamePatchBody.Headers.Add("Content-Type", "application/json");

var colNameRequestMessage = new HttpRequestMessage(patchMethod, worksheetsEndpoint +
    "('" + worksheetName + "')/range(address='Sheet1!B2')")
{
    Content = colNamePatchBody
};

var colNameResponseMessage = await client.SendAsync(colNameRequestMessage);

您需要通過formulas而不是values屬性來傳遞它:

{
  "formulas" : "=sum(2+2)"
}

您還應該考慮使用Microsoft Graph Client Library for .NET,而不是滾動自己的原始HTTP調用。 隨着時間的流逝,它將為您節省很多頭痛。 它還產生了更簡潔的代碼:

await graphClient.Me
    .Drive
    .Items["id"]
    .Workbook
    .Worksheets["Sheet1"]
    .Range("C12")
    .Request()
    .PatchAsync(new WorkbookRange()
    {
        Formulas = JArray.Parse(@"[['=2.2']]")
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM