如何在googlesheetsapi中获取列标题及其名称的映射



我的谷歌工作表中有几列。列数随时间变化(将来可能会添加新列(。如果我的床单看起来像这样,我想得到一张地图或类似的东西:

我的纸张视图

API调用响应:

{
"timestamp" : "A",
"Col1" : "B",
"Col2" : "C",
"Col3" : "D"
}

换句话说,我想在api响应中获得表中的列名及其标签。或者,任何类似的事情也会起作用。我不知道API要调用什么。我知道工作表的.get调用,但我不知道如何在其中获取列的标签。我只能获取一定范围内的数据。我不知道如何获取列的标签。

您可以简单地使用API获取值,然后映射,然后生成列的字母:

def main():
# Build the service (see python quickstart)
# [...] 
# Get the values on row 1
result = service.spreadsheets().values().get(spreadsheetId=SPREADSHEET_ID, range='1:1').execute()
values = result.get('values', [[]])[0]
# Generate the headers mapping
headers = {}
for i, value in enumerate(values, start=1):
if value is not None and value != '':
headers[value] = col_to_letter(i)

print(headers)
def col_to_letter(col):
'''Gets the letter of a column number'''
r = ''
while col > 0:
v = (col - 1) % 26
r = chr(v + 65) + r
col = (col - v - 1) // 26
return r

col_to_letter是根据这个JavaScript答案改编的。

参考文献

  • Python Quickstart(Google Sheets API v4指南(
  • spreadsheets.values.get(Google Sheets API v4参考(

最新更新