Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
googlesheetpythonapi:如果don';我不知道范围?_Python_Google Sheets_Google Sheets Api - Fatal编程技术网

googlesheetpythonapi:如果don';我不知道范围?

googlesheetpythonapi:如果don';我不知道范围?,python,google-sheets,google-sheets-api,Python,Google Sheets,Google Sheets Api,具有从电子表格中获取值的get方法,但它需要range参数。也就是说,你的代码必须是这样的 sheets_service = service.spreadsheets().values() data = sheets_service.get(spreadsheetId = _GS_ID, range = _SHEET_NAME).execute() 您不能忽略范围参数,值'或值'Sheet1'或类似值(除非有名为Sheet1的工作表) 如果我事先不知道工作表的名称怎么办?我可以参考第一张或最左

具有从电子表格中获取值的
get
方法,但它需要
range
参数。也就是说,你的代码必须是这样的

sheets_service = service.spreadsheets().values()
data = sheets_service.get(spreadsheetId = _GS_ID, range = _SHEET_NAME).execute()
您不能忽略
范围
参数,值
'
或值
'Sheet1'
或类似值(除非有名为
Sheet1
的工作表)


如果我事先不知道工作表的名称怎么办?我可以参考第一张或最左边的那张吗?如果做不到这一点,有没有办法得到所有工作表的列表?我一直在查看API,但没有找到任何用于此目的的内容,但这似乎是一个基本需求,我觉得我缺少了一些明显的东西。

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

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

service.spreadsheets().get(spreadsheetId=_GS_ID, fields='sheets(properties(index,sheetId,title))').execute()
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])
样本2: 此示例使用图纸索引检索数据范围的图纸名称、最后一行和最后一列的编号。当0用于图纸索引时,表示第一张图纸

service.spreadsheets().get(spreadsheetId=_GS_ID, fields='sheets(properties(index,sheetId,title))').execute()
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方法,如
service.spreadsheets().get(spreadsheetId=\GS\u ID)。execute(),检索您想要的电子表格的值和元数据?该文件是。在这种情况下,需要知道电子表格ID。@Tanaike才能工作!它可以工作,并给出一个表单列表。我理解我的困难:我没有注意到
spreadsheets()
上也有一个单独的
get
方法。该方法返回不同的信息。谢谢你的回复。顺便说一句,如果你想把它写下来作为一个答案而不是一个评论,我很乐意把它作为一个答案进行投票和核对。如果你不指定一个名字,它默认为第一页,但你必须指定列,例如,
range=“a:Z”
将从第一页返回列
a-Z
。参考:谢谢你的回复。我发布了一个包含示例脚本的答案。你能确认一下吗?