Python 有没有一种方法可以使用googlesheets api和gspread格式化多个工作表

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

我目前正在编写一个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=客户端打开(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"
        }
    })