代码之家  ›  专栏  ›  技术社区  ›  Bruno Leveque tirdadc

如何使用google sheet api v4的php版本合并单元格

  •  0
  • Bruno Leveque tirdadc  · 技术社区  · 7 年前

    我已经按照《快速入门指南》和API V4文档成功地设置了凭据和访问权限。

    一切顺利,我成功地尝试:

    • 更新电子表格标题
    • 读取/写入每个单元格中的值
    • 等。

    但是,在尝试合并某些单元格时,我始终遇到以下错误:

    致命错误:未捕获的Google服务异常:{“错误”:{“代码”: 400,“消息”:“收到无效的JSON负载。未知名称 \“请求”处的“合并类型”:找不到字段。\n无效的JSON负载 收到。“请求”处的“范围”名称未知:找不到字段。“, “errors”:[{“message”:“收到无效的json负载。未知名称 \“请求”处的“合并类型”:找不到字段。\n无效的JSON负载 收到。“请求”处的“范围”名称未知:找不到字段。“, “domain”:“global”,“reason”:“badrequest”}],“status”: “无效参数”}

    源代码:

    <?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";
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Rajender Verma    7 年前

    如果您还没有解决这个问题,问题就出在您发送的请求中, 尝试将您的请求设置为 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";
    
    推荐文章