繁体   English   中英

通过Microsoft Graph API创建Excel文件

[英]Create excel file through Microsoft Graph API

有谁知道如何通过MS Graph API创建excel和ppt文件? 我们试图利用MS Graph API在单击按钮时创建word / excel / ppt文件,尽管我们发现了如何创建Word文件,但是即使api成功响应,所创建的excel和powerpoint文件也已损坏。 下面的终点适用于Word文件。 目前,我们一直在使用图api浏览器( https://developer.microsoft.com/zh-cn/graph/graph-explorer# )。 任何帮助,将不胜感激!

POST https://graph.microsoft.com/v1.0/drives/{Drive ID}/root/children/ 

Request Body:
{
  "name": "FileTest6.docx",
  "file":{
  }
}

PowerPoint文件

PowerPoint文件可以通过DriveItem上传端点创建,例如:

PUT https://graph.microsoft.com/v1.0/me/drive/root:/sample.pptx:/content

要么

POST https://graph.microsoft.com/v1.0/me/drive/root/children
{
  "name": "Sample.pptx",
  "file":{ }
}

Excel文件

对于excel文件,情况有所不同,因为需要明确提供要上传的excel文件的内容。

对于ASP.NET Core应用程序,可以考虑以下解决方案:

C#示例

using (var stream = new MemoryStream())
{
    CreateWorkbook(stream);
    stream.Seek(0, SeekOrigin.Begin);
    var driveItem = await graphClient.Me
            .Drive
            .Root
            .ItemWithPath("SampleWorkbook1.xlsx")
            .Content
            .Request()
            .PutAsync<DriveItem>(stream);
    }

哪里

public static void CreateWorkbook(Stream stream)
{

    // By default, AutoSave = true, Editable = true, and Type = xlsx.
    var spreadsheetDocument =
        SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook);

    // Add a WorkbookPart to the document.
    var workbookpart = spreadsheetDocument.AddWorkbookPart();
    workbookpart.Workbook = new DocumentFormat.OpenXml.Spreadsheet.Workbook();

    // Add a WorksheetPart to the WorkbookPart.
    var worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
    worksheetPart.Worksheet = new Worksheet(new SheetData());
    // Add Sheets to the Workbook.
    var sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<Sheets>(new Sheets());

    // Append a new worksheet and associate it with the workbook.
    var sheet = new Sheet()
        {Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet"};
    sheets.Append(sheet);

    workbookpart.Workbook.Save();
    // Close the document.
    spreadsheetDocument.Close();
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM