你好我是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文档。没有多大帮助。
答案 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的新工作表中。