当前位置: 首页 > 知识库问答 >
问题:

如何将单元格与Google Sheets API合并?

皇甫鸿远
2023-03-14

我正在使用Google Sheets API的Python客户端构建电子表格。我可以创建一个新的工作表并更新其中的值,但无法合并所需标题行的单元格。

top_header_format = [
    {'mergeCells': {
        'mergeType': 'MERGE_COLUMNS',
        'range': {
            'endColumnIndex': 3,
            'endRowIndex': 1,
            'sheetId': '112501875',
            'startColumnIndex': 0,
            'startRowIndex': 0
        }
    }},
    {'mergeCells': {
        'mergeType': 'MERGE_COLUMNS',
         'range': {
             'endColumnIndex': 5,
             'endRowIndex': 1,
             'sheetId': '112501875',
             'startColumnIndex': 3,
             'startRowIndex': 0
         }
    }}
]

service.spreadsheets().batchUpdate(
    spreadsheetId=spreadsheet_id,
    body={'requests': top_header_format}
).execute()

这是我正在运行的代码。没有错误。响应的回复是空的,电子表格没有合并的单元格。留档在这里。

共有2个答案

屈晨
2023-03-14

如果有人希望与PHP进行合并,您可以使用以下代码:

对于合并单元格,首先你必须从作曲家下载PHP库,因为在他们的留档(https://developers.google.com/sheets/api/quickstart/php)中,一旦安装,请按照他们的指南设置你的客户端以获得身份验证。

    //$client will be your Google_Client authentication, for more info check the documentation link above.

使用下面的代码合并行和列

    $service = new Google_Service_Sheets($client);

    $spreadsheetId = '1jfUz2VMUUEt2s4BP2Ye';    //this is test spreadsheet it, use your spreadsheet id here

    $rangeinst = new Google_Service_Sheets_GridRange();
    $rangeinst->setSheetId(0);  //your sheet id
    $rangeinst->setStartRowIndex(1);    // row index from where to start
    $rangeinst->setEndRowIndex(11); //ending row upto which you want merging
    $rangeinst->setStartColumnIndex(0); //start of column index, first column has 0 index like row
    $rangeinst->setEndColumnIndex(4);   //end of column upto which you want merging
    $merge = new Google_Service_Sheets_MergeCellsRequest();
    $merge->setMergeType('MERGE_COLUMNS');  //merge type request
    $merge->setRange($rangeinst);

    $requestBody = new Google_Service_Sheets_Request();
    $requestBody->setMergeCells($merge);
    $requestBatchBody = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
    $requestBatchBody->setRequests($requestBody);


    $response = $service->spreadsheets->batchUpdate($spreadsheetId, $requestBatchBody);
    echo "<pre>";
    print_r($response);
颜修真
2023-03-14

开始索引是包容性的,结束索引是排他性的,所以通过要求合并行[0,1),您说的是“我想将行0合并到行0”,这是一个无操作。你可能想要[0,2),例如:

top_header_format = [
    {'mergeCells': {
        'mergeType': 'MERGE_COLUMNS',
        'range': {
            'endColumnIndex': 4,
            'endRowIndex': 2,
            'sheetId': '112501875',
            'startColumnIndex': 0,
            'startRowIndex': 0
        }
    }},
    {'mergeCells': {
        'mergeType': 'MERGE_COLUMNS',
         'range': {
             'endColumnIndex': 6,
             'endRowIndex': 2,
             'sheetId': '112501875',
             'startColumnIndex': 3,
             'startRowIndex': 0
         }
    }}
]
 类似资料:
  • 我使用Google Sheets API在我的javascript应用程序中显示我的Google电子表格中的数据。已通过引用此留档开发。我可以从电子表格中读取值,但对于某些列,单元格合并如下。 我得到的Json响应如下所示 我的预期输出应该是 有什么帮助吗?

  • 我有一个对象列表,我试图为每个对象指定三行,我使用的"Office Open Xml库"有以下例程: 然而,它弹出一个错误,说不能合并已经合并的单元格。 所以问题是如何在Excel中合并两个以上的单元格?

  • mergeCells(string $scope, string $data [, resource $formatHandler]): self string $scope $excel->fileName("test.xlsx") ->mergeCells('A1:C1', 'Merge cells') ->output();

  • 是否可以使用PDFBox(或其他库)将两个PDF中的元素合并为最终PDF? 我不是在寻找页面连接,而是在合并页面元素:

  • 我使用POI读取xlsb文件。但我无法获取合并单元格的信息。 我使用这个页面中的模块。请查看下面的源代码文件路径 https://svn.apache.org/repos/asf/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFBReader.java

  • 我要做一个垂直合并使用这个函数: 但我不能用类似的函数进行水平合并: 谢谢!