如何使用 PHP 版本的 Google Sheet API v4 合并单元格
How to merge cells using the PHP version of the Google Sheet API v4
我已经按照快速入门指南和 API v4 文档成功设置了我的凭据和访问权限。
一切正常,我成功地尝试了:
- 更新电子表格标题
- Read/write 每个单元格中的值
- 等等
然而,我在尝试合并一些单元格时不断收到以下错误:
Fatal error: Uncaught Google_Service_Exception: { "error": { "code":
400, "message": "Invalid JSON payload received. Unknown name
\"merge_type\" at 'requests': Cannot find field.\nInvalid JSON payload
received. Unknown name \"range\" at 'requests': Cannot find field.",
"errors": [ { "message": "Invalid JSON payload received. Unknown name
\"merge_type\" at 'requests': Cannot find field.\nInvalid JSON payload
received. Unknown name \"range\" at 'requests': Cannot find field.",
"domain": "global", "reason": "badRequest" } ], "status":
"INVALID_ARGUMENT" } }
源代码:
<?php
include_once(__DIR__.'/vendor/autoload.php');
include_once(__DIR__.'/client.php');
$id_spreadsheet = '12xymzMe8OLbX9vw84'; // My spreadsheet ID (redacted for Whosebug)
/* 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), '</pre>', "\n";
如果您还没有解决这个问题,那么问题出在您发送的请求中,
尝试在 Google_Service_Sheets_BatchUpdateSpreadsheetRequest
setRequests
方法
中设置您的请求
$batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
$batchUpdateRequest->setRequests($request);
$response = $service->spreadsheets->batchUpdate($id_spreadsheet, $batchUpdateRequest);
echo '<pre>', var_export($response, true), '</pre>', "\n";
我已经按照快速入门指南和 API v4 文档成功设置了我的凭据和访问权限。
一切正常,我成功地尝试了:
- 更新电子表格标题
- Read/write 每个单元格中的值
- 等等
然而,我在尝试合并一些单元格时不断收到以下错误:
Fatal error: Uncaught Google_Service_Exception: { "error": { "code": 400, "message": "Invalid JSON payload received. Unknown name \"merge_type\" at 'requests': Cannot find field.\nInvalid JSON payload received. Unknown name \"range\" at 'requests': Cannot find field.", "errors": [ { "message": "Invalid JSON payload received. Unknown name \"merge_type\" at 'requests': Cannot find field.\nInvalid JSON payload received. Unknown name \"range\" at 'requests': Cannot find field.", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } }
源代码:
<?php
include_once(__DIR__.'/vendor/autoload.php');
include_once(__DIR__.'/client.php');
$id_spreadsheet = '12xymzMe8OLbX9vw84'; // My spreadsheet ID (redacted for Whosebug)
/* 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), '</pre>', "\n";
如果您还没有解决这个问题,那么问题出在您发送的请求中,
尝试在 Google_Service_Sheets_BatchUpdateSpreadsheetRequest
setRequests
方法
$batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
$batchUpdateRequest->setRequests($request);
$response = $service->spreadsheets->batchUpdate($id_spreadsheet, $batchUpdateRequest);
echo '<pre>', var_export($response, true), '</pre>', "\n";