我正在尝试使用PHP创建图表Google表格API错误400无效请求[0] .addChart:错误弹出

时间:2018-03-13 10:22:33

标签: php charts google-sheets-api

你好我是google sheet api的新手。 我试图使用谷歌表中的数据创建一个图表。当我尝试使用batchUpdate方法错误弹出来向工作表添加聊天时。

"error": {
    "code": 400,
    "message": "Invalid requests[0].addChart: One of EmbeddedObjectPosition.overlayPosition  or EmbeddedObjectPosition.sheetId must be set",
    "errors": [
      {
        "message": "Invalid requests[0].addChart: One of EmbeddedObjectPosition.overlayPosition  or EmbeddedObjectPosition.sheetId must be set",
        "domain": "global",
        "reason": "badRequest"
      }
    ],
    "status": "INVALID_ARGUMENT"

我目前正在使用PHP Google Sheet api V4 这是导致错误的代码段。

        $chart  = new Google_Service_Sheets_EmbeddedChart();
        $chart->setSpec($chart_spec);
        $chart->setPosition(new Google_Service_Sheets_EmbeddedObjectPosition(
            array(
                'sheetId'=>$tab_id,
                'overlayPosition'=> new Google_Service_Sheets_OverlayPosition(array(
                    'offsetXPixels'=>20,
                    'offsetYPixels'=>20,
                )),
            )
        ));
        $created_chart = new Google_Service_Sheets_AddChartRequest($chart);

        $sheets_request = new Google_Service_Sheets_Request();
        $sheets_request->setAddChart($created_chart);

        $requests = [$sheets_request];

        $batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest([
            'requests' => $requests
        ]);

        $response_batchUpdate = $service->spreadsheets->batchUpdate($fileId,
            $batchUpdateRequest);

我阅读了google api文档。没有多大帮助。

1 个答案:

答案 0 :(得分:1)

根据documentation,以及上面粘贴的错误消息中所述,无法同时设置sheetId和overlayPosition。

  

字段

     

     

联盟字段位置。对象的位置。完全一个   必须设置值。位置只能是以下之一:

     

     

sheetId数字

     

此表已打开。仅在嵌入对象独立时设置   片。必须是非负面的。

     

     

overlayPosition对象(OverlayPosition)

     

对象叠加在网格顶部的位置。

     

     

newSheet boolean

     

如果为true,则嵌入对象将放在ID为的新工作表上   为你选择。仅在写作时使用。

如果您想添加锚定在网格上特定单元格的图表,则需要在overlayPosition

中设置anchorPosition
  

字段

     

     

anchorCell对象(GridCoordinate)

     

对象锚定的单元格。

     

     

offsetXPixels数字

     

对象偏离的水平偏移量(以像素为单位)   锚细胞。

     

     

offsetYPixels数字

     

对象偏离的垂直偏移(以像素为单位)   锚细胞。

     

     

widthPixels数字

     

对象的宽度,以像素为单位。默认为600。

     

     

heightPixels数字

     

对象的高度,以像素为单位。默认为371。

否则,如果您要将图表添加到自己的工作表,则可以指定sheetId(如果您要指定要将图表添加到工作表的工作表的ID ,或newSheet,如果您只想将其添加到具有任意ID的新工作表中。