Создать файл Excel с помощью Microsoft Graph API - PullRequest
0 голосов
/ 16 января 2019

Кто-нибудь знает, как создавать файлы Excel и PPT через MS Graph API? Мы пытаемся использовать MS Graph API для создания файлов word / excel / ppt одним нажатием кнопки, и хотя мы нашли, как создавать файлы word, созданные файлы excel и powerpoint повреждены даже при успешном ответе API. Конечная точка ниже работает для файлов слов. Мы только что работали с Graph Api Explorer (https://developer.microsoft.com/en-us/graph/graph-explorer#) на данный момент. Любая помощь будет оценена!

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

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

1 Ответ

0 голосов
/ 07 августа 2019

Файлы 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 можно рассмотреть следующее решение:

  • создать пустой документ Excel с помощью Open XML SDK (см. CreateWorkbook пример ниже)
  • загрузка через Загрузка DriveItem конечная точка

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();
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...