【发布时间】:2019-08-19 22:22:15
【问题描述】:
我目前正在编写一个 python 程序,它从网站上抓取数据,然后将该信息写入谷歌电子表格。根据每行中包含的数据,数据被分成主电子表格内的不同工作表。我一直在使用 gspread 的 batch_update() 函数发送多个请求,但它只格式化 sheet1 而不会格式化后续页面。我该怎么做才能使所有工作表的格式都相同。
batch_update() 通过 googlesheets api 调用电子表格.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)
这只会格式化电子表格中的第一页
【问题讨论】:
-
我的回答是否向您展示了您想要的结果?你能告诉我吗?这对我学习也很有用。如果这可行,与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果您对我的回答有疑问,我深表歉意。到时候,可以问一下你现在的情况吗?我想学习解决你的问题。
-
感谢您的回复!这让我得到了我需要的结果。当我浏览文档时,我不知何故认为 sheetId 指的是整个电子表格而不是每个单独的工作表,所以我没有必要输入。
-
感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
标签: python google-sheets-api gspread