如何通过Google Spreadsheets API获取指定单元格范围的超链接?
解决方案
你原本使用的values().get()接口默认仅返回单元格的纯文本内容,要提取超链接需要调用spreadsheets().get()接口,开启网格数据返回参数,同时指定返回字段即可。
service = build('sheets', 'v4', credentials=creds) # 调用spreadsheets.get接口,指定范围和返回字段 result = service.spreadsheets().get( spreadsheetId="SPREADSHEET_ID", ranges="Sheet1!B3:B", includeGridData=True, fields="sheets/data/rowData/values/hyperlink,sheets/data/rowData/values/formattedValue" ).execute() # 提取超链接和对应显示文本 rows = result.get('sheets', [])[0].get('data', [])[0].get('rowData', []) for row in rows: cell_data = row.get('values', [])[0] display_text = cell_data.get('formattedValue', '空文本') hyperlink = cell_data.get('hyperlink', '无超链接') print(f"显示文本:{display_text},超链接:{hyperlink}")
参数说明
includeGridData=True:要求接口返回单元格的详细网格数据,而非仅纯文本内容fields参数限定仅返回需要的字段,既减少响应体积也避免冗余数据:sheets/data/rowData/values/hyperlink对应单元格绑定的超链接地址sheets/data/rowData/values/formattedValue对应单元格的显示文本
注意:如果超链接是通过
HYPERLINK()函数生成的动态链接,需要额外在fields里加上sheets/data/rowData/values/userEnteredValue/formulaValue,自行解析公式内容提取链接地址。
内容的提问来源于stack exchange,提问作者Adarsh Mamgain
相关产品推荐
相关产品推荐

