我相信你的目标如下。
-
您希望将包含多个超链接的值放入Google电子表格的单元格中。
-
您希望使用带有Python的gspread来实现这一点。
在您的情况下,下面的示例脚本如何?
示例脚本:
在本示例中,使用gspread将该值放入Google电子表格上“Sheet1”的单元格“A1”中。
import gspread
client = # Please use your gspread client.
spreadsheetId = "###" # Please set your Spreadsheet ID.
sheetName = "Sheet1" # Please set your sheet name.
# These values are from your showing script.
hyperlink_url1 = "https://drive.google.com/"
hyperlink_url2 = "https://www.amazon.com"
text1 = "Google Drive"
text2 = "Amazon Drive"
cell_format = {"backgroundColor": {"red": 183/255, "green": 225/255, "blue": 205/255}}
spreadsheet = client.open_by_key(spreadsheetId)
sheet = spreadsheet.worksheet(sheetName)
obj = [{"t": text1, "u": hyperlink_url1}, {"t": text2, "u": hyperlink_url2}]
text = "\n".join([e["t"] for e in obj])
requests = [
{
"updateCells": {
"rows": [
{
"values": [
{
"userEnteredValue": {"stringValue": text},
"textFormatRuns": [{"format": {"link": {"uri": e["u"]}}, "startIndex": text.find(e["t"])} for e in obj],
"userEnteredFormat": cell_format
}
]
}
],
"range": {"sheetId": sheet.id, "startRowIndex": 0, "endRowIndex": 1, "startColumnIndex": 0, "endColumnIndex": 1},
"fields": "userEnteredValue,textFormatRuns,userEnteredFormat"
}
}
]
spreadsheet.batch_update({"requests": requests})
测试:
运行此脚本时,将获得以下结果。您可以在“A1”中看到包含多个超链接的单元格值。
参考文献: