python - 谷歌表格 Python API : how get values in first sheet if don't know range?

标签 python google-sheets google-sheets-api

Python API for Google sheets有一个 get 方法来从电子表格中获取值,但它需要一个 range 参数。也就是说,您的代码必须是这样的,

sheets_service = service.spreadsheets().values()
data = sheets_service.get(spreadsheetId = _GS_ID, range = _SHEET_NAME).execute()

并且您不能省略 range 参数,'' 的值或 'Sheet1' 的值也不会起作用或类似(除非有一个名为 Sheet1 的工作表)。

如果我事先不知道工作表名称怎么办?我可以以某种方式引用第一张或最左边的工作表吗?如果做不到这一点,有没有办法获得所有工作表的列表?我一直在查看 API,但没有找到任何用于该目的的东西,但这似乎是一个基本需求,我觉得我遗漏了一些明显的东西。

最佳答案

您可以使用 Sheets API 的 spreadsheets.get 检索电子表格的值和元数据。通过fields参数,可以获取电子表格的各种信息。

示例 1:

此示例在电子表格中检索索引、工作表 ID 和工作表名称。在这种情况下,index: 0 表示第一个工作表。

service.spreadsheets().get(spreadsheetId=_GS_ID, fields='sheets(properties(index,sheetId,title))').execute()

示例 2:

此示例使用工作表索引检索工作表名称、数据范围的最后一行和最后一列的编号。当工作表索引为0时,表示第一个工作表。

res = service.spreadsheets().get(spreadsheetId=_GS_ID, fields='sheets(data/rowData/values/userEnteredValue,properties(index,sheetId,title))').execute()
sheetIndex = 0
sheetName = res['sheets'][sheetIndex]['properties']['title']
lastRow = len(res['sheets'][sheetIndex]['data'][0]['rowData'])
lastColumn = max([len(e['values']) for e in res['sheets'][sheetIndex]['data'][0]['rowData'] if e])

引用:

关于python - 谷歌表格 Python API : how get values in first sheet if don't know range?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51851389/

相关文章:

python - 创建二进制字符串列表 (Python)

Python字符串范围(解析html)

python - Google Sheets API v4,将格式从一个电子表格复制并粘贴到另一个电子表格

python - 使用 numpy 创建大型随机 bool 矩阵

python 美丽汤爬行 json

java - 如何使用 API 读取 google 电子表格中的工作表?

javascript - 如何在谷歌脚本中引用事件单元格左侧的单元格

google-apps-script - Google Apps 脚本中 ui.alert 窗口中的分割线和粗体文本

javascript - 如何在不需要用户登录的情况下在网站上使用 Google 表格中的数据?

google-apps-script - 气体 : prompt for user input with a default value