openpyxl -避免错误,如果使用坏的表名



我试图避免使用openpyxl的不可恢复的错误,如果使用错误的选项卡/工作表名称。以下是python代码行:

try:
sheet = workbook[month_list[int(month)-1] + day]
except SheetTitleException as e:
print("worksheet does not exist")

如果构造了一个有效的名称,则一切正常。如果没有,我得到以下错误:

raise KeyError("Worksheet {0} does not exist.".format(key))

KeyError: 'Worksheet Jan01 does not exist.'

我正试图抓住并从错误中恢复过来。谁能纠正我做错了什么?

谢谢你的建议。

我认为最好检查该名称是否存在于表名中。Openpyxl有一个workbook.sheetnames,它将为您提供工作簿中所有工作表名称的列表。所以,试试这个…


names = workbook.sheetnames
if str(month_list[int(month)-1] + day) not in names:
print("worksheet does not exist")
else:
print("All ok")
# Your code here...

无论哪种方式,异常都是一个关键错误。您将需要处理异常尝试另一个表,所以一个简单的例子。
try catch将尝试打开'Sheet1', 'Sheet2'等,直到成功(在本例中是无限期的)。

wb = op.load_workbook('excelfile.xlsx')
count = 1
while True:
try:
sheet = wb['Sheet{0}'.format(count)]
break
except KeyError as e: # <-- This is the exception
print("worksheet {0} does not exist".format(count))
count += 1

相关内容

最新更新