2017-02-19 25 views
2

С помощью PHP неявно из Google Sheets API v4 documentation о том, как создать новый лист (ака «вкладка») в существующей электронной таблице.Как использовать API-интерфейсы Google v4 Создать новый лист или вкладку в электронной таблице с помощью PHP

Я могу сделать это с помощью batchUpdate, как ни странно, через API Explorer, но они не объясняют, как это делается на PHP.

ответ

3

Похоже, в документации говорится, что мы должны использовать 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 Notation.

+0

Где говорят документы, чтобы использовать коллекции значений? –

+0

Здесь: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/batchGet – Volomike

+0

Можете ли вы процитировать часть этой страницы, в которой говорится, чтобы использовать коллекции значений для добавления листа? Я этого не вижу, но если он скажет, что я хотел бы это исправить. –