Dra*_*obZ 3 google-sheets google-sheets-api
我正在尝试使用 v4 API ValueRenderOption 参数( )访问超链接valueRenderOption=FORMULA。我尝试过 python 的 gsheets 和 cURL。不管怎样,我似乎无法得到显示超链接的公式。以下是电子表格的屏幕截图;请注意,包含该值的单元格2按预期显示了其公式,但指向https://example.com 的超链接显示为“sup”。我们是否应该有一种新的方式来访问超链接的内容?
g表:
print(worksheet.acell('A2', value_render_option="FORMULA").value)
# sup
Run Code Online (Sandbox Code Playgroud)
卷曲:
URL="https://sheets.googleapis.com/v4/spreadsheets/$SHEET_ID/values/%27Sheet1%27%21A2"
curl -X GET "$URL?valueRenderOption=FORMULA" -H "Authorization: Bearer $TOKEN"
# output
{
"range": "Sheet1!A1:Z1001",
"majorDimension": "ROWS",
"values": [
[
"Name",
"Other"
],
[
"sup",
"word"
],
[
"k",
100
],
[
"=AVERAGE(1,2,3)",
"k"
]
]
}
Run Code Online (Sandbox Code Playgroud)
我相信你的目标如下。
在这种情况下,在当前阶段,可以使用Sheets API中的“spreadsheets.get”方法来检索超链接。并且,该请求需要使用field参数。这样,就可以检索到超链接。示例curl命令如下。
作为示例情况,假设 URL 设置为 Google Spreadsheet 中“Sheet1”的单元格“A1”。
curl \
'https://sheets.googleapis.com/v4/spreadsheets/[SPREADSHEETID]?ranges=Sheet1!A1&fields=sheets(data(rowData(values(hyperlink))))' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
Run Code Online (Sandbox Code Playgroud)
结果:
{
"sheets": [
{
"data": [
{
"rowData": [
{
"values": [
{
"hyperlink": "https://example.com/"
}
]
}
]
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
在 gspread 中,requests库的使用如下。访问令牌是从credentialsof检索的gspread.authorize(credentials)。
gc = gspread.authorize(credentials)
access_token = credentials.access_token
url = 'https://sheets.googleapis.com/v4/spreadsheets/[SPREADSHEETID]?ranges=Sheet1!A1&fields=sheets(data(rowData(values(hyperlink))))'
res = requests.get(url, headers={'Authorization': 'Bearer ' + access_token})
print(res.json())
Run Code Online (Sandbox Code Playgroud)
结果:
{'sheets': [{'data': [{'rowData': [{'values': [{'hyperlink': 'https://example.com/'}]}]}]}]}
Run Code Online (Sandbox Code Playgroud)
sheets(data(rowData(values(hyperlink))))用作fields。关于这一点,你也可以使用sheets. 在这种情况下,响应值中包括其他值。Sheet1!A1被用作范围。所以请根据您的实际情况修改此范围。