首页 > 解决方案 > Graph API 工作簿 - 更新范围 - 数字格式的美国设置

问题描述

我正在使用 Microsoft Graph API 来更新 Excel 工作表中的值。还指定了给定单元格的数字格式。数字格式是货币的自定义格式。格式取自excel。

示例:$ 10,740,081 - 不带小数的美元

excel 文件放置在具有非美国语言设置的 SharePoint 上。

我的代码是:

private const string MoneyFormat = "_($* #,##0_);_($* (#,##0);_($* \"-\"??_);_(@_)";
...
WorkbookSessionInfo sessionInfo = await client.Sites["{siteId}"].Drives["{driveId}"].Items["{fileId}"].Workbook.CreateSession(true).Request().PostAsync();

var workbookRange = new WorkbookRange
{
   Values = JToken.FromObject(values), // [["10", "100"]]
   Formulas = JToken.FromObject(formulas), // [[null, null]]
   NumberFormat = JToken.FromObject(numberFormat) // [[MoneyFormat, MoneyFormat]]
};

var worksheetRangeRequest = client.Sites["{siteId}"].Drives["{driveId}"].Items["{fileId}"].Workbook.Worksheets["{sheetName}"].Range("A1:B1").Request();
AddWorkbookSessionIdHeader(worksheetRangeRequest, sessionInfo.Id);
await worksheetRangeRequest.PatchAsync(workbookRange);

var closeRequest = client.Sites["{siteId}"].Drives["{driveId}"].Items["{fileId}"].Workbook.CloseSession().Request();
AddWorkbookSessionIdHeader(closeRequest, sessionInfo.Id);
await closeRequest.PostAsync();

如果我打开结果 excel 文件,指定的数字格式几乎是正确的,除了货币符号。货币符号$被忽略,它显示与我的本地设置相关的货币符号。

如果我检查应用于单元格的数字格式的详细信息,格式会有点不同

_(Kč* # ##0_);_(Kč* (# ##0);_(Kč* "-"??_);_(@_)

有什么办法可以强制 Graph API 使用指定的货币符号?

标签: c#microsoft-graph-apimicrosoft-graph-sdks

解决方案


推荐阅读