【问题标题】:How to add a nested list with gspread?如何使用 gspread 添加嵌套列表?
【发布时间】:2021-02-26 15:17:21
【问题描述】:

有人可以帮助我通过 gspread 实现嵌套列表吗? Screenshot 我想做的事。

【问题讨论】:

    标签: python google-sheets google-sheets-api gspread


    【解决方案1】:

    我相信你的目标和你目前的情况如下。

    • 您想在单元格中创建一个下拉列表。

      • 根据您的以下示例图片和问题中的“嵌套列表”,我是这样理解的。

    • 您想使用 python 的 gspread 来实现这一点。

    • 您已经能够使用 Sheets API 获取和输入 Google 电子表格的值。

    在这种情况下,我认为需要使用batchUpdate方法。

    示例脚本:

    在此示例脚本中,请使用您的脚本来检索 credentialsclient = gspread.authorize(credentials)。请设置变量。当您运行此脚本时,下拉列表将在spreadsheetId 的“Sheet1”的单元格“A1”中创建。下拉列表来自您的示例图片。

    client = gspread.authorize(credentials)
    spreadsheetId = "###" # Please set the Spreadsheet ID.
    sheetName = "Sheet1" # Please set the sheet ID.
    
    spreadsheet = client.open_by_key(spreadsheetId)
    sheetId = spreadsheet.worksheet(sheetName).id
    body = {
        "requests": [
            {
                "updateCells": {
                    "range": {
                        "sheetId": sheetId,
                        "startRowIndex": 0,
                        "endRowIndex": 1,
                        "startColumnIndex": 0,
                        "endColumnIndex": 1
                    },
                    "rows": [
                        {
                            "values": [
                                {
                                    "dataValidation": {
                                        "condition": {
                                            "values": [
                                                {
                                                    "userEnteredValue": "help"
                                                },
                                                {
                                                    "userEnteredValue": "me"
                                                },
                                                {
                                                    "userEnteredValue": "please"
                                                }
                                            ],
                                            "type": "ONE_OF_LIST"
                                        },
                                        "showCustomUi": True
                                    }
                                }
                            ]
                        }
                    ],
                    "fields": "dataValidation"
                }
            }
        ]
    }
    spreadsheet.batch_update(body)
    

    结果:

    上面的脚本运行时,得到如下结果。

    注意:

    • 此示例脚本假设您已经能够使用 Sheets API 获取和放置 Google 电子表格的值。请注意这一点。

    参考资料:

    【讨论】:

    • @andreykirv 感谢您的回复。很高兴您的问题得到解决。
    【解决方案2】:

    如果您只想要一个可以手动编辑的下拉列表,则无需代码即可完成。步骤如下:

    #1 选择您想要列表的单元格,然后转到数据 > 数据验证:

    #2 在条件下选择“项目列表”:

    #3 然后输入你的值,用逗号分隔:

    #4 按保存,然后单击胡萝卜以查看您的下拉列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 2021-01-26
      • 2018-03-08
      • 2022-01-20
      相关资源
      最近更新 更多