Я поигрался с api v4 листов Google, потому что он выглядит довольно интересно с возможностью рендеринга диаграмм. Я использую клиент google api для php.
Прежде всего, я создал новую электронную таблицу с двумя листами и заполнил данные на первом листе. Это сработало, как и ожидалось.
Затем я хотел отобразить диаграмму на основе данных первого листа на втором листе. Я хотел начать простой путь с круговой диаграммы, потому что у вас есть только одна серия данных.
Я всегда получаю следующее сообщение об ошибке:
"message": "Недействительные запросы [0] .addChart: Нет сетки с идентификатором: 1"
Единственный идентификатор, который я установил, - это идентификатор ячейки привязки диаграмм для второго листа, который я уже создал:
$googleSheetsSheetGridCoordinate = new Google_Service_Sheets_GridCoordinate();
$googleSheetsSheetGridCoordinate->setSheetId(1);
$googleSheetsSheetGridCoordinate->setColumnIndex(0);
$googleSheetsSheetGridCoordinate->setRowIndex(0);
$googleSheetsSheetOverlayPosition = new Google_Service_Sheets_OverlayPosition();
$googleSheetsSheetOverlayPosition->setAnchorCell($googleSheetsSheetGridCoordinate);
$googleSheetsSheetOverlayPosition->setHeightPixels(500);
$googleSheetsSheetOverlayPosition->setWidthPixels(700);
Заглянув в электронную таблицу, есть лист с id: 1, а также таблица типов, поэтому я понятия не имею, в чем может быть проблема.
Обновление Вот тело сообщения моего запроса addChart:
{
"requests":[
{
"addChart":{
"chart":{
"spec":{
"title":"Pie Chart",
"pieChart":{
"legendPosition":"BOTTOM_LEGEND",
"domain":{
"sourceRange":{
"sources":[
{
"endRowIndex":3,
"sheetId":0,
"startColumnIndex":0,
"startRowIndex":2
}
]
}
},
"series":{
"sourceRange":{
"sources":{
"endRowIndex":4,
"sheetId":0,
"startColumnIndex":0,
"startRowIndex":3
}
}
}
}
},
"position":{
"overlayPosition":{
"heightPixels":500,
"widthPixels":700,
"anchorCell":{
"columnIndex":0,
"rowIndex":0,
"sheetId":1
}
}
}
}
}
}
]
}
Когда я сравниваю его с примером, я смог найти только один, который охватывает добавление диаграмм, https://codelabs.developers.google.com/codelabs/sheets-api/#9, мне это кажется правильным.