С PHP это неясно из Документация по Google Sheets API v4 о том, как создать новый лист (он же «вкладка») в существующей электронной таблице.
Я могу сделать это с помощью batchUpdate, как ни странно, через API Explorer, но они не объясняют, как это сделать в PHP.
Похоже, в документации говорится, что мы должны использовать batchUpdate из $service->spreadsheets_values
коллекция. Но это неверно. Это должно быть $service->spreadsheets
коллекция. Правильный ответ после многих проб и ошибок:
try {
$body = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(array(
'requests' => array(
'addSheet' => array(
'properties' => array(
'title' => 'New Sheet'
)
)
)
));
$result1 = $service->spreadsheets->batchUpdate($sSpreadsheetID,$body);
} catch(Exception $ignore) {}
Учитывая, что вы уже аутентифицировали свой API, чтобы получить $client
объект, а затем использовал это, чтобы получить $service
объект класса Google_Service_Sheets
и с учетом того, что вы назначили $sSpreadsheetID
к идентификатору вашей электронной таблицы, то вышеприведенная процедура попытается добавить новую вкладку в вашу электронную таблицу с именем «Новый лист», не разрушая существующую, и не будет отображать ошибки, если эта вкладка уже существует. В этот момент вы можете сделать что-то новое с этим новым листом, обратившись к нему с помощью нотации A1.
Других решений пока нет …