Google Sheet Python API:如果不知道范围,如何获取第一个 sheet 中的值?
Google Sheet Python API: how get values in first sheet if don't know range?
Python API for Google sheets 有一个 get
方法来从价差 sheet 中获取值,但它需要一个 range
参数。也就是说,您的代码必须是这样的,
sheets_service = service.spreadsheets().values()
data = sheets_service.get(spreadsheetId = _GS_ID, range = _SHEET_NAME).execute()
并且您不能省略 range
参数,''
的值或 'Sheet1'
或类似的值(除非有 sheet名为 Sheet1
).
如果我提前不知道 sheet 名字怎么办?我可以以某种方式引用第一个或最左边的 sheet 吗?如果做不到这一点,是否有办法获得所有 sheet 的列表?我一直在查看 API 并没有找到任何用于该目的的东西,但这似乎是一个基本需求,我觉得我遗漏了一些明显的东西。
您可以使用 Sheets API 的 spreadsheets.get
检索 Spreadsheet 的值和元数据。通过fields
的参数,可以获取Spreadsheet.
的各种信息
示例 1:
此示例在 Spreadsheet 中检索索引、sheet ID 和 sheet 名称。在这种情况下,index: 0
表示第一个 sheet.
service.spreadsheets().get(spreadsheetId=_GS_ID, fields='sheets(properties(index,sheetId,title))').execute()
示例 2:
此示例使用 sheet 索引检索 sheet 名称、数据范围的最后一行和最后一列的编号。当sheet索引使用0时,表示第一个sheet.
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])
参考:
- spreadsheets.get
- Convert column index into corresponding column letter
- 对于column,您可以在上面的线程中看到关于从索引转换为字母的方法。
Python API for Google sheets 有一个 get
方法来从价差 sheet 中获取值,但它需要一个 range
参数。也就是说,您的代码必须是这样的,
sheets_service = service.spreadsheets().values()
data = sheets_service.get(spreadsheetId = _GS_ID, range = _SHEET_NAME).execute()
并且您不能省略 range
参数,''
的值或 'Sheet1'
或类似的值(除非有 sheet名为 Sheet1
).
如果我提前不知道 sheet 名字怎么办?我可以以某种方式引用第一个或最左边的 sheet 吗?如果做不到这一点,是否有办法获得所有 sheet 的列表?我一直在查看 API 并没有找到任何用于该目的的东西,但这似乎是一个基本需求,我觉得我遗漏了一些明显的东西。
您可以使用 Sheets API 的 spreadsheets.get
检索 Spreadsheet 的值和元数据。通过fields
的参数,可以获取Spreadsheet.
示例 1:
此示例在 Spreadsheet 中检索索引、sheet ID 和 sheet 名称。在这种情况下,index: 0
表示第一个 sheet.
service.spreadsheets().get(spreadsheetId=_GS_ID, fields='sheets(properties(index,sheetId,title))').execute()
示例 2:
此示例使用 sheet 索引检索 sheet 名称、数据范围的最后一行和最后一列的编号。当sheet索引使用0时,表示第一个sheet.
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])
参考:
- spreadsheets.get
- Convert column index into corresponding column letter
- 对于column,您可以在上面的线程中看到关于从索引转换为字母的方法。