php - 如何使用 PHP 版本的 Google Sheet API v4 合并单元格
问题描述
我已经按照快速入门指南和 API v4 文档成功设置了我的凭据和访问权限。
一切都很好,我成功地尝试了:
- 更新电子表格标题
- 在每个单元格中读取/写入值
- 等等
但是,在尝试合并某些单元格时,我不断收到以下错误:
致命错误:未捕获的 Google_Service_Exception:{“错误”:{“代码”:400,“消息”:“收到无效的 JSON 有效负载。“请求”处的未知名称 \"merge_type\":找不到字段。\n收到无效的 JSON 有效负载。 'requests' 处的未知名称 \"range\": 找不到字段。"、"errors": [ { "message": "收到无效的 JSON 有效负载。'requests' 处的未知名称 \"merge_type\": 找不到字段。 \n收到无效的 JSON 有效负载。“请求”处的未知名称“范围”:找不到字段。”、“域”:“全局”、“原因”:“badRequest”}]、“状态”:“INVALID_ARGUMENT”} }
源代码:
<?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), '</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";
推荐阅读
- cookies - Web 浏览器未向服务器发送 cookie
- javascript - 在 JS 中初始化复选框,点击它应该给出行数据
- php - 使用 PHP 生成 CSV 文件
- firebase - 公众无法访问 Firebase Cloud Function [应用程序正在请求访问您的 Google 帐户的权限。]
- angular - 无法使用带有ngrx的角度读取未定义的属性“地图”
- java - AES/CBC/PKCS5Padding 加密与固定 IV(或没有)
- database - 有没有办法查询谷歌 ngrams 超过 10 个替换?
- javascript - 捕捉 Amcharts 的 CircleBullet 点击事件
- python - tkinter for 循环条目绑定连接到 sqlite3
- android - 为自定义构建类型(非调试)创建覆盖率报告不起作用