gpt4 book ai didi

python - 有没有办法使用 googlesheets api 和 gspread 格式化多个工作表

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:49 26 4
gpt4 key购买 nike

我目前正在编写一个 python 程序,该程序从网站上抓取数据,然后将该信息写入谷歌电子表格。根据每一行中包含的数据,数据被分成主电子表格内的不同工作表。我一直在使用 gspread 的 batch_update() 函数发送多个请求,但它只格式化 sheet1 而不会格式化后续页面。我该怎么做才能使所有工作表的格式相同。

batch_update() 通过 googlesheets api 调用 spreadsheets.batchUpdate() 方法,这应该影响整个电子表格而不是我不理解的第一个工作表

creds = ServiceAccountCredentials.from_json_keyfile_name("creds.json", scope)
client = gspread.authorize(creds)
vt = client.open(sheetName)

formatRequests = []
formatRequests.append({
"repeatCell" : {
"range" : {
"startColumnIndex" : 0,
"endColumnIndex" : 1
},
"cell" : {
"userEnteredFormat" : {
"numberFormat" : {
"type": "DATE",
"pattern" : "mmm dd, yyyy, hh:mm am/pm"
}
}
},
"fields" : "userEnteredFormat.numberFormat"
}
})

#... A bunch of other formatting appends

body = {
'requests' : formatRequests
}
vt.batch_update(body)

这只会格式化电子表格中的第一页

最佳答案

  • 您想为电子表格中的所有工作表设置格式。
  • 您想使用带有 gspread 的 Sheets API 来实现这一点。
  • 您已经能够使用 Sheets API 获取和放置值。

如果我的理解是正确的,这个修改怎么样?

修改点:

  • 在此修改中,首先,从电子表格中检索所有工作表。然后使用检索到的工作表 ID 创建请求正文。

修改后的脚本:

请按如下方式修改您的脚本。

从:
formatRequests = []
formatRequests.append({
"repeatCell" : {
"range" : {
"startColumnIndex" : 0,
"endColumnIndex" : 1
},
"cell" : {
"userEnteredFormat" : {
"numberFormat" : {
"type": "DATE",
"pattern" : "mmm dd, yyyy, hh:mm am/pm"
}
}
},
"fields" : "userEnteredFormat.numberFormat"
}
})
到:
formatRequests = []
worksheet_list = vt.worksheets() # Added
for sheet in worksheet_list: # Added
formatRequests.append({
"repeatCell": {
"range": {
"startColumnIndex": 0,
"endColumnIndex": 1,
"sheetId": sheet.id # Added
},
"cell": {
"userEnteredFormat": {
"numberFormat": {
"type": "DATE",
"pattern": "mmm dd, yyyy, hh:mm am/pm"
}
}
},
"fields": "userEnteredFormat.numberFormat"
}
})

引用:

如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

关于python - 有没有办法使用 googlesheets api 和 gspread 格式化多个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com