Как объединить ячейки с помощью PHP-версии Google Sheet API v4 - PullRequest
0 голосов
/ 01 ноября 2018

Я успешно настроил свои учетные данные и доступ в соответствии с руководством по быстрому запуску и документацией API v4.

Все отлично работает, я успешно попытался:

  • Обновить заголовок таблицы
  • Чтение / запись значений в каждой ячейке
  • и т.д.

Однако я продолжаю получать следующую ошибку при попытке объединить некоторые ячейки:

Неустранимая ошибка: Uncaught Google_Service_Exception: {"error": {"code": 400, "message": "Получена недопустимая полезная нагрузка JSON. Неизвестное имя \ "merge_type \" в «запросах»: не удается найти поле. \ nНеверная полезная нагрузка JSON получено. Неизвестное имя \ "диапазон \" в 'запросах': не удается найти поле. ", "errors": [{"message": "Получена недопустимая полезная нагрузка JSON. Неизвестное имя \ "merge_type \" в «запросах»: не удается найти поле. \ nНеверная полезная нагрузка JSON получено. Неизвестное имя \ "диапазон \" в 'запросах': не удается найти поле. ", "домен": "глобальный", "причина": "плохой запрос"}], "статус": "INVALID_ARGUMENT"}}

Исходный код:

<code><?php

include_once(__DIR__.'/vendor/autoload.php');
include_once(__DIR__.'/client.php');

$id_spreadsheet = '12xymzMe8OLbX9vw84'; // My spreadsheet ID (redacted for Stackoverflow)

/* Retrieve the API access */
$service = new Google_Service_Sheets(getClient());

/* Merge header columns */
$range = new Google_Service_Sheets_GridRange();
$range->setStartRowIndex(0);
$range->setEndRowIndex(1);
$range->setStartColumnIndex(1);
$range->setEndColumnIndex(24);
$range->setSheetId(0);

$request = new Google_Service_Sheets_MergeCellsRequest();
$request->setMergeType('MERGE_COLUMNS');
$request->setRange($range);

$batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(['requests' => $request]);
$response = $service->spreadsheets->batchUpdate($id_spreadsheet, $batchUpdateRequest);
echo '<pre>', var_export($response, true), '
', "\ n";

1 Ответ

0 голосов
/ 03 января 2019

Если вы не решили эту проблему, проблема в отправляемом вами запросе, попробуйте установить ваш запрос в Google_Service_Sheets_BatchUpdateSpreadsheetRequest setRequests метод

<code>$batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
$batchUpdateRequest->setRequests($request);
$response = $service->spreadsheets->batchUpdate($id_spreadsheet, $batchUpdateRequest);
echo '<pre>', var_export($response, true), '
', "\ n";
...