【问题标题】:How to read data in a named range?如何读取命名范围内的数据?
【发布时间】:2021-02-18 22:59:47
【问题描述】:

我浏览了 Google Sheets API v4 的文档,但找不到从 named 范围读取数据的方法。 我正在使用 Python,特别是在寻找类似的东西:

named_range = 'My Beautiful Range'
service = build('sheets', 'v4', credentials=creds)
sheet = service.spreadsheets()
result = sheet.values().get(spreadsheetId=my_id,
                            namedRange=named_range).execute()
values = result.get('values', [])

有这样的API吗?

【问题讨论】:

    标签: google-sheets-api


    【解决方案1】:

    是的,spreadsheets.values.getspreadsheets.get 都接受命名范围作为它们的 range parameter

    请记住,您的命名范围应该有效并且存在于您尝试访问的电子表格中。

    注意:

    Valid Range Names:

    • 只能包含字母、数字和下划线。
    • 不能以数字或单词“true”或“false”开头。
    • 不能包含任何空格或标点符号。
    • 必须为 1–250 个字符。
    • 不能采用 A1 或 R1C1 语法。例如,如果您将范围命名为“A1:B2”或“R1C1:R2C2”之类的名称,则可能会出现错误。

    示例代码:

    named_range = 'MyBeautifulRange'
    result = sheet.values().get(spreadsheetId=my_id,
                                range=named_range).execute()
    values = result.get('values', [])
    

    样本表:

    使用 API 资源管理器的 spreadsheets.values.get 请求示例:

    示例响应正文:

    {
      "range": "Sheet1!A1:B3",
      "majorDimension": "ROWS",
      "values": [
        [
          "A1",
          "B1"
        ],
        [
          "A2",
          "B2"
        ],
        [
          "A3",
          "B3"
        ]
      ]
    }
    

    【讨论】:

    • 当我看到 OP 的脚本和你的示例脚本时,我注意到了一个修改点。那么下面的修改呢?我认为当您的示例脚本运行时,会发生错误。因为没有namedRange 的名字。在这种情况下,请使用range 而不是namedRange。所以它就像modify result = sheet.values().get(spreadsheetId=my_id, range=named_range).execute()。我认为您的回答包含很多重要信息。所以,通过这个修改,我认为你的回答对 OP 和其他用户会更有用。
    • 感谢您指出这一点。创建解决方案时,我无法检查 python 库。我根据您的修改更新了答案
    • 哇,我没想到这只是工作......文档清楚地指出:“范围:要检索的值的A1表示法。”谢谢@田池!
    • @Ron M 感谢您的回复。我认为您的回答会对很多用户有用。
    • 标记了错误的人,也是为了感谢@RonM :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2019-09-12
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多