在xlwt.Workbook类中奇怪地缺少sheets()方法,因此使用该方法的其他答案将不起作用 – 只有xlrd.book(用于读取XLS文件)具有sheet()方法.因为所有类属性都是私有的,所以你必须这样做:
def get_sheet_by_name(book, name):
"""Get a sheet by name from xlwt.Workbook, a strangely missing method.
Returns None if no sheet with the given name is present.
"""
# Note, we have to use exceptions for flow control because the
# xlwt API is broken and gives us no other choice.
try:
for idx in itertools.count():
sheet = book.get_sheet(idx)
if sheet.name == name:
return sheet
except IndexError:
return None
如果您不需要它为不存在的工作表返回None,则只需删除try / except块.如果要重复按名称访问多个工作表,将它们放在字典中会更有效,如下所示:
sheets = {}
try:
for idx in itertools.count():
sheet = book.get_sheet(idx)
sheets[sheet.name] = sheet
except IndexError:
pass