擅长:python、mysql、java
<p>奇怪的是,<code>xlwt.Workbook</code>类中没有<code>sheets()</code>方法,因此使用该方法的另一个答案将不起作用-只有<code>xlrd.book</code>(用于读取XLS文件)有一个<code>sheets()</code>方法。因为所有类属性都是私有的,所以必须执行以下操作:</p>
<pre><code>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
</code></pre>
<p>如果不需要它为不存在的工作表返回None,那么只需删除try/except块。如果要重复按名称访问多个工作表,则将它们放入字典中会更有效,如下所示:</p>
<pre><code>sheets = {}
try:
for idx in itertools.count():
sheet = book.get_sheet(idx)
sheets[sheet.name] = sheet
except IndexError:
pass
</code></pre>