【发布时间】:2020-03-04 07:23:22
【问题描述】:
试图读取一系列 xls 文件。它们没有以统一的方式格式化。有时床单存在,有时不存在。有时他们有一个名字,有时另一个。这是一个不完美的世界。
我尝试检查工作表名称的一些代码:
import xlrd
wb=xlrd.open_workbook(r'C:\sample.xls')
class Workbook_Reading:
def __init__(self, wb):
self.wb = wb
self.history = None
def purch_hist(self):
if self.wb.sheet_loaded('Purchase History') is True:
purchase_history = wb.sheet_by_name('Purchase History')
self.history = purchase_history
elif self.wb.sheet_loaded('Previous Purchases') is True:
purchase_history = wb.sheet_by_name('Previous Purchases')
self.history = purchase_history
else:
pass
我不断收到错误消息:xlrd.bffh.XLRDError: No Sheet Named <'Purchase History'>。我正在测试一个我知道具体没有第一个条件(购买历史表)但有另一个(以前的购买表)的 wb。我做错了什么?
【问题讨论】:
-
即使你编辑了你的原始帖子
self.wb会引发AttributeError: 'Workbook_Reading' object has no attribute 'wb',因为你的类没有 wb 属性。也就是说,如果你得到xlrd.bffh.XLRDError: No Sheet Named <'Purchase History'>,这不是实际代码 -
另外,
c:sample.xls缺少反冲并且会首先引发 FileNotFoundError -
如何创建工作表名称列表,然后在 try/catch 块中使用 sheet_by_name() 函数对其进行迭代。
-
抱歉,我正在非常快速地制作示例代码。它确实有一个 self.wb 和一个 C:\。我会编辑这些,但@Jabb 我会尝试这样做。