如何通过Python调用Google Sheets API识别谷歌表格中的合并单元格
用Google Sheets API获取合并单元格信息的实现方法
- 首先调整你的请求参数:
- 将
include_grid_data设置为True,只有开启该参数,接口才会返回单元格网格的元数据,包含合并单元格相关信息 - 将
ranges参数设置为你需要查询的目标范围,也就是["A1:B"]
- 将
接口返回的响应中,sheets字段对应你查询的工作表集合,每个工作表对象下的mergedRanges字段就是该表内所有合并单元格的范围列表。每个合并范围包含四个索引属性,索引均从0开始计数:
startRowIndex:合并范围起始行,包含当前行endRowIndex:合并范围结束行,不包含当前行startColumnIndex:合并范围起始列,包含当前列endColumnIndex:合并范围结束列,不包含当前列
修改后的完整实现代码如下:
spreadsheet_id = 'my-spreadsheet-id' # 填入目标查询范围 ranges = ["A1:B"] # 开启网格数据返回 include_grid_data = True request = service.spreadsheets().get( spreadsheetId=spreadsheet_id, ranges=ranges, includeGridData=include_grid_data ) response = request.execute() # 取第一个工作表的合并范围,可根据实际需求调整工作表索引 merged_ranges = response['sheets'][0].get('mergedRanges', []) # 转换为表格界面显示的行号列号输出 for merge_range in merged_ranges: show_start_row = merge_range['startRowIndex'] + 1 show_end_row = merge_range['endRowIndex'] show_start_col = merge_range['startColumnIndex'] + 1 show_end_col = merge_range['endColumnIndex'] print(f"合并范围:第{show_start_row}行至第{show_end_row}行,第{show_start_col}列至第{show_end_col}列")
对应你示例里B1和B2合并的场景,上述代码会输出合并范围:第1行至第2行,第2列至第2列,和实际表格结构完全匹配。
内容的提问来源于stack exchange,提问作者gizel
相关产品推荐
相关产品推荐

