Python 有没有一种方法可以使用googlesheets api和gspread格式化多个工作表
我目前正在编写一个python程序,它从一个网站上抓取数据,然后将这些信息写入谷歌电子表格。根据每行中包含的数据,数据在主电子表格中被分成不同的工作表。我一直在使用gspread的batch_update()函数发送多个请求,但它只格式化sheet1,不格式化后续页面。如何使所有工作表的格式相同 batch_update()通过googlesheets api调用spreadsheets.batchUpdate()方法,这将影响整个电子表格,而不是我不理解的第一张工作表Python 有没有一种方法可以使用googlesheets api和gspread格式化多个工作表,python,google-sheets-api,gspread,Python,Google Sheets Api,Gspread,我目前正在编写一个python程序,它从一个网站上抓取数据,然后将这些信息写入谷歌电子表格。根据每行中包含的数据,数据在主电子表格中被分成不同的工作表。我一直在使用gspread的batch_update()函数发送多个请求,但它只格式化sheet1,不格式化后续页面。如何使所有工作表的格式相同 batch_update()通过googlesheets api调用spreadsheets.batchUpdate()方法,这将影响整个电子表格,而不是我不理解的第一张工作表 creds=Servic
creds=ServiceAccountCredentials.from_json_keyfile_name(“creds.json”,scope)
client=gspread.authorize(creds)
vt=客户端打开(sheetName)
formatRequests=[]
formatRequests.append({
“重复单元”:{
“范围”:{
“startColumnIndex”:0,
“endColumnIndex”:1
},
“单元”:{
“userEnteredFormat”:{
“数字格式”:{
“类型”:“日期”,
“模式”:“月日、年、时:上午/下午”
}
}
},
“字段”:“userEnteredFormat.numberFormat”
}
})
#... 一堆其他格式的附件
正文={
“请求”:格式化请求
}
vt.batch_更新(正文)
这仅格式化电子表格中的第一页- 您希望为电子表格中的所有图纸设置格式
- 您希望通过gspread使用sheetsapi来实现这一点
- 您已经能够使用Sheets API获取和放置值
- 在此修改中,首先从电子表格检索所有图纸。然后使用检索到的图纸ID创建请求正文
如果我误解了你的问题,而这不是你想要的方向,我道歉。我的回答是否向你展示了你想要的结果?你能告诉我这件事吗?这对我的学习也很有用。如果这样做有效,其他与你有相同问题的人也可以将你的问题作为可以解决的问题。如果你对我的回答还有疑问,我道歉。那时候,我可以问一下你目前的情况吗?我想学习来解决你的问题。谢谢你的回复!这让我得到了我需要的结果。当我浏览文档时,不知何故,我认为sheetId指的是整个电子表格,而不是每个单独的工作表,因此我没有必要填写。谢谢您的回复。我很高兴你的问题解决了。也谢谢你。
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"
}
})