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并没有为此目的找到任何东西,但这似乎是一种基本需求,我觉得我缺少明显的东西。
答案 0 :(得分:1)
您可以使用Sheets API的spreadsheets.get
来检索Spreadsheet的值和元数据。通过使用fields
的参数,您可以检索电子表格的各种信息。
此示例检索电子表格中的索引,工作表ID和工作表名称。在这种情况下,index: 0
表示第一张纸。
service.spreadsheets().get(spreadsheetId=_GS_ID, fields='sheets(properties(index,sheetId,title))').execute()
此示例使用工作表索引检索工作表名称,数据范围的最后一行和最后一列的数目。工作表索引使用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])