从Google Sheet api V4中的单元格获取超链接

时间:2017-10-22 22:19:17

标签: python google-sheets

我想在Python中获取单元格的超链接(例如A1)。到目前为止我有这个代码。感谢

properties = {
    "requests": [
    {
        "cell": {
            "HyperlinkDisplayType": "LINKED"
        },
        "fields": "userEnteredFormat.HyperlinkDisplayType"
    }

    ]
    }

result = service.spreadsheets().values().get(
    spreadsheetId=spreadsheet_id, range=rangeName, body=properties).execute()
values = result.get('values', [])

3 个答案:

答案 0 :(得分:2)

如何使用sheets.spreadsheets.get?此示例脚本假设您的脚本的service已经可以用于spreadsheets().values().get()

示例脚本:

spreadsheetId = '### Spreadsheet ID ###'
range = ['sheet1!A1:A1'] # This is a sample.
result = service.spreadsheets().get(
    spreadsheetId=spreadsheetId,
    ranges=range,
    fields="sheets/data/rowData/values/hyperlink"
).execute()

如果这对你没用,我很抱歉。

答案 1 :(得分:1)

如果您在最后添加,可以检查超链接:

  

print(values [0])

答案 2 :(得分:1)

在我看来,这是实际获取链接信息(地址以及显示文本)的唯一方法:

result = service.spreadsheets().values().get(
        spreadsheetId=spreadsheetId, range=range_name, 
        valueRenderOption='FORMULA').execute()
values = results.get('values', [])

这将返回单元格的原始内容,对于每个单元格来说,超链接看起来像这样:

'=HYPERLINK("sample-link","http://www.sample.com")'

我已使用以下简单的正则表达式对其进行了解析:

r'=HYPERLINK\("(.*?)","(.*?)"\)'