我正在尝试使用PHP Google Sheets API创建图表错误400无效请求[0]。addChart:错误弹出
嗨,我是谷歌工作表api的新手。 我试图用谷歌表格中的数据创建一个图表。当我尝试使用batchUpdate方法将聊天添加到工作表时,会弹出错误我正在尝试使用PHP Google Sheets API创建图表错误400无效请求[0]。addChart:错误弹出,php,charts,google-sheets-api,Php,Charts,Google Sheets Api,嗨,我是谷歌工作表api的新手。 我试图用谷歌表格中的数据创建一个图表。当我尝试使用batchUpdate方法将聊天添加到工作表时,会弹出错误 "error": { "code": 400, "message": "Invalid requests[0].addChart: One of EmbeddedObjectPosition.overlayPosition or EmbeddedObjectPosition.sheetId must be set", "erro
"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"
im目前正在使用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);
我阅读了GoogleAPI文档。没什么帮助 根据,并且正如您在上面粘贴的错误消息中所述,不能同时设置sheetId和OverlyPosition
田地
联合现场位置。对象的位置。正好一个
必须设置该值。位置只能是以下位置之一:
单张号码
这张纸在上面。仅当嵌入对象独立时设置
床单。必须是非负的
覆盖位置对象(覆盖位置)
对象覆盖在栅格顶部的位置
新闻纸布尔值
如果为true,则嵌入对象将放在ID为的新工作表上
为你选择的。仅在书写时使用
如果要添加锚定在栅格上特定单元格的图表,则需要在中设置锚定位置
田地
anchorCell对象(网格坐标)
对象定位到的单元
偏移X像素数
以像素为单位的水平偏移,该对象从
锚细胞
偏移像素数
对象与对象偏移的垂直偏移(以像素为单位)
锚细胞
宽度像素数
对象的宽度,以像素为单位。默认值为600
高度像素数
对象的高度,以像素为单位。默认值为371
否则,如果您想将图表添加到自己的工作表中,您可以指定
sheetId
(如果您想指定要将图表添加到的工作表的ID,或者newSheet
,如果您只想将其添加到具有任意ID的新工作表中。var\u dump($tab\u ID=$result1->getrepries()[0]['modelData]['addSheet'][properties][“sheetId”]);我希望图表与源表位于同一张工作表中。我只尝试使用sheetId,但没有覆盖位置,但出现了相同的错误。是的,正如上面的答案和参考文档所描述的,只使用覆盖位置字段。该字段中有一个anchorCell属性,其中包括所需的网格ID、行和列索引锚定图表覆盖。独立的sheetId字段仅用于添加到自己的工作表中。感谢sam,它工作得非常好。问题是我在位置字段中使用sheetId字段,而不是覆盖位置->锚定单元格->sheetId