このプロジェクトをダウンロードしてカスタマイズしましたasp mvc todo sample。これは、onedriveファイル/項目を上手くいく上で問題なく、うまく動作しています。しかし、私はこれをオンラインでオフィス365のシェアポイントを使って行う必要があります。 iは次のようにサービスポイントを使用してファイルIDを取得することができています:Microsoft Graph APIを使用してSharepointドキュメントライブラリを使用してExcelファイルを操作する
var serviceEndpoint = "https://graph.microsoft.com/beta/sites/mydomain.sharepoint.com:/foa/bd:/lists/Budget/items";
しかし、私はどのように私は、ファイルデータをエクセルと同じ操作/更新するために、SharePointと、ブックエンドポイントのURLを定義する必要がありますことを確認していません。 (動作しない)、次のように現在のブックエンドポイントURL:次のように
var workbookEndpoint = "https://graph.microsoft.com/beta/sites/mydomain.sharepoint.com:/foa/bd:/lists/Budget/items/" + fileId + "/workbook";
私の完全な方法は、SharePoint上のExcelファイル内のセルの値を更新します
public static async Task UpdateExcelCellValue_Sharepoint(string accessToken, string cellAddress, string val)
{
string worksheetName = "Parameters";
var serviceEndpoint = "https://graph.microsoft.com/beta/sites/mydomain.sharepoint.com:/foa/bd:/lists/Budget/items";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var filesResponse = await client.GetAsync(serviceEndpoint + "?$select=name,id");
if (filesResponse.IsSuccessStatusCode)
{
var filesContent = await filesResponse.Content.ReadAsStringAsync();
JObject parsedResult = JObject.Parse(filesContent);
foreach (JObject file in parsedResult["value"])
{
var name = (string)file["id"];
if (name.Contains("173"))
{
fileId = (string)file["id"];
break;
}
}
}
else
{
//Handle failed response
}
//Set up workbook and worksheet endpoints
var workbookEndpoint = "https://graph.microsoft.com/beta/sites/mydomain.sharepoint.com:/foa/bd:/lists/Budget/items/" + fileId + "/workbook";
var worksheetsEndpoint = workbookEndpoint + "/worksheets";
var patchMethod = new HttpMethod("PATCH");
var summaryTableRowJson = "{" +
"'values': '" + val + ".csv'" +
"}";
var colNamePatchBody = new StringContent(summaryTableRowJson);
colNamePatchBody.Headers.Clear();
colNamePatchBody.Headers.Add("Content-Type", "application/json");
var colNameRequestMessage = new HttpRequestMessage(patchMethod, worksheetsEndpoint +
"('" + worksheetName + "')/range(address='Parameters!B2')")
{ Content = colNamePatchBody };
var colNameResponseMessage = await client.SendAsync(colNameRequestMessage);
}