我的工作表名为“doc_name”,它有两个工作表,“sheet1”和“sheet2”。但是,我只能将数据写入标有“sheet1”的工作表吗?
这是限制还是我做错了什么?
这有效,
wks = gc.open("doc_name").sheet1
但这失败了,
wks = gc.open("doc_name").sheet2
给出这个错误,
AttributeError: 'Spreadsheet' 对象没有属性 'sheet2'
我也注意到这失败了,
wks = gc.open("doc_name").Sheet1
...我使用大写“S”的地方..只有当我指定小写时它才会写入。sheet1
如何在不编写代码的情况下写入工作表...wks = gc.open("doc_name").sheet1?
请您参考如下方法:
这是因为 gspread 只实现了 sheet1 来让您检索电子表格中的第一个工作表作为快捷方式。
来自source code你可以看到 sheet1 的实现是使用 get_worksheet(0)
@property
def sheet1(self):
"""Shortcut property for getting the first worksheet."""
return self.get_worksheet(0)
所以如果你想检索其他工作表,你需要使用其他方法,如:
1.将 index 指定为一个整数,表示从 0 开始打开工作表的位置:
wks = gc.open("doc_name").get_worksheet(index)
或
2.指定要作为字符串打开的工作表的标题:
wks = gc.open("doc_name").worksheet(title)
也就是说,在您的情况下,要获取 sheet2,您可能可以使用
wks = gc.open("doc_name").get_worksheet(1)
