Как добавить лист в электронную таблицу - PullRequest
0 голосов
/ 04 июня 2019

Глядя на API Google Sheets, достаточно просто добавить строки в существующую электронную таблицу (документировано здесь ).

Что я не могу понять, как это сделать, это добавить строку к определенному листу в электронной таблице, содержащей несколько листов. Листы имеют собственный идентификатор (задокументировано здесь ), но для действия добавления требуется spreadsheetID. Присоединение к электронной таблице, содержащей несколько листов, кажется, всегда добавляется к тому, какой «первый» лист в электронной таблице в настоящее время.

Кто-нибудь знает, как с помощью API / SDK сделать запрос на добавление строки в конкретный лист?

1 Ответ

1 голос
/ 04 июня 2019

Чтобы добавить строки или данные в лист, вам нужно использовать имя листа, а не идентификатор листа.

Пример:

Sheet1!A5:A относится ко всем ячейкам первого столбцаиз Лист 1 , начиная со строки 5.

Если имя листа содержит пробелы или начинается с скобки, заключите имя листа в одинарные кавычки ('), например, 'Sheet One'!A1:B2.Для простоты можно всегда окружать имя листа одинарными кавычками.

Пожалуйста, перейдите по этим двум ссылкам

A1 Обозначение

Добавить значения к листу

Пример кода в PHP

$googleClient = createGoogleClient();    //your implementation to get google client
$sheetService = new Google_Service_Sheets($googleClient);

$spreedSheetId = "1pz5uJAUnk3BRR1dxWz_C5NHhMpf20yPQnLYIoyl0kdd"; //your spreedsheet id
$sheetTitle = "Sheet1";         //SheetTitle
$range = "'" . $sheetTitle . "'!A1";

$row = array("Column1_Value", "Column2_Value", "Column3_Value", 
              "Column4_Value");
$rows[] = $row;

/** @var Google_Service_Sheets_ValueRange $body */
$body = new Google_Service_Sheets_ValueRange(['values' => $rows]);
$params = [
  'valueInputOption' => 'USER_ENTERED',
  'insertDataOption' => 'OVERWRITE',
  'responseValueRenderOption' => 'FORMATTED_VALUE',
];
$result = $sheetService->spreadsheets_values->append($spreedSheetId, 
$range, $body, $params);
$updatedCells = $result->getUpdates()->getUpdatedCells();
printf("%d cells updated.", $updatedCells);  
...