【发布时间】:2020-06-15 13:52:00
【问题描述】:
给定一个 Google 表格中的特定单元格,其中包含指向另一个 Google 表格中另一个单元格的超链接 - 如何正确获取此链接以及如何获取链接单元格的值?
到目前为止,我得到了这个:
table_entities = gc.values().get(spreadsheetId=excel_id, range='XYZ').execute()['values']
table_entities_synthesis = gc.get(spreadsheetId=excel_id, ranges='XYZ', fields="sheets/data/rowData/values/hyperlink").execute()
synthesis_rangeid_list = []
for hyperlink in table_entities_synthesis.get('sheets')[0].get('data')[0].get('rowData'):
if hyperlink.get('values', ''):
hyperlink = hyperlink.get('values')[1].get('hyperlink')
synthesis_rangeid_list.append(hyperlink)
request = gc.spreadsheets().values().get(spreadsheetId=ABC, range=hyperlink,
valueRenderOption=value_render_option, dateTimeRenderOption=date_time_render_option)
response = request.execute()
但是这种方法为我提供了一个范围 ID 列表,如下所示:'#rangeid=737563017',我不知道如何使用此方法从其他工作表访问数据(当然是不应该是我上面做的方式,因为 gc.spreadsheets().values().get() 方法在谈论单元格范围而不是 id 时接受像'B2'这样的东西)+另一个问题是这个解决方案只有当我的第一张工作表的每一行都有到第二张工作表的超链接时才会起作用(我想最后将一个值连接到另一个) - 所以如果一个原始值不包含它,那么我会丢失整个订单并且我有一个大问题。
理想的情况是在循环中获取特定单元格的超链接,然后将其连接到另一个工作表中超链接单元格的值。
【问题讨论】:
-
虽然我不确定我是否能正确理解您的情况,例如,在这种情况下,使用
#gid=###&range=A1像=HYPERLINK("#gid=###&range=A1","A1")而不是#rangeid怎么样? Ref 这样就可以使用sheet ID 和A1Notation。但我不确定这是否是你所期望的方向。 -
您好,@Tanaike 的建议对您的任务有用吗?
-
嗨!不是真的 :( 处理这个电子表格的人将使用 Google 表格在线添加超链接而不是编码,所以我不能像这样自定义它们(@Tanaike 链接了关于如何在 Python 脚本中创建超链接的答案)。我需要从已经手动添加的单元格中提取超链接,然后从链接的单元格中提取值。我正在使用 Google API v4 处理工作表...
标签: python google-sheets hyperlink range google-sheets-api