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

Max*_*cía 4 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', [])
Run Code Online (Sandbox Code Playgroud)

Tan*_*ike 8

使用怎么样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()
Run Code Online (Sandbox Code Playgroud)

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


Era*_*ran 7

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

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

这将返回单元格的原始内容,每个单元格的超链接如下所示:

'=HYPERLINK("sample-link","http://www.sample.com")'
Run Code Online (Sandbox Code Playgroud)

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

r'=HYPERLINK\("(.*?)","(.*?)"\)'
Run Code Online (Sandbox Code Playgroud)