如何使用Microsoft图形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无效。段'add'必须是(被截断的...)“

您能帮我吗?

谢谢。

解决方法

我认为您不能在一个调用中直接用数据复制整个工作表,但是您可以尝试先从creating a worksheet开始,然后在add a table之后再从get data上一个工作表表
然后将这些值作为行添加到第二个电子表格的第二个表中。

如果您希望在一次通话中完成此操作,则可以在Microsoft Graph Uservoice Forum上为此功能提出一个用户声音。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...