Как скопировать рабочий лист с его содержимым с помощью Microsoft Graph excel api

Я пытаюсь скопировать рабочий лист с его содержимым в другой новый.

По происхождению у меня есть таблица, и я хочу скопировать рабочий лист с таблицей и ее содержимым.

В программировании на PHP, и я пробую это:

$sheet = $graph->createRequest('GET', $originSheet)
        ->setReturnType(Model\WorkbookWorksheet::class)
        ->execute();

    $sheet->setName($worksheetName);

    
    $graph->createRequest('POST', $sheetUrl)
        ->setReturnType(Model\WorkbookWorksheet::class)
        ->attachBody($sheet)
        ->execute();

Но содержимое не дублируется, я просто получаю дублированный пустой лист.

Я попытался выполнить GET, чтобы получить исходную таблицу исходного листа, примерно так:

$originSheetTables = $graph->createRequest('GET', $originSheetUrl)
        ->setReturnType(Model\WorkbookTable::class)
        ->execute();

Но я не знаю, как использовать ответ на этот запрос ($originSheetTables) для добавления в новый рабочий лист. Я пробовал этот запрос с таким подходом:

$graph->createRequest('POST', $sheetUrl.'/'.$worksheetName.'/tables/add')
        ->attachBody($originSheetTables[0])          
        ->execute();

Но я получаю сообщение об ошибке 400: "URI запроса недействителен. Сегмент" добавить "должен быть (усеченным...)"

Не могли бы вы мне с этим помочь?

Заранее спасибо.

1 ответ

Я не думаю, что вы можете напрямую дублировать весь рабочий лист с данными за один вызов, но вы можете попробовать обойтись, сначала создав рабочий лист, а затем добавив таблицу, а затем получив данные из предыдущей таблицы рабочего листа,
а затем добавив значения как строк во вторую таблицу во второй таблице.

Если вы хотите, чтобы это было сделано с помощью одного звонка, вы можете поднять голос пользователя на форуме Microsoft Graph Uservoice для этой функции.

Другие вопросы по тегам