Как скопировать рабочий лист с его содержимым с помощью 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 для этой функции.