1.问题现象
使用xlwr创建一个workbook; 使用add_sheet创建一个worksheet; 使用sheet_names获取所有worksheet的名称是出现报错,代码如下:
workbook1
= xlwt
.Workbook
(path1
)
sheet_diff
= workbook1
.add_sheet
('sheet_diff')
sheets1
= workbook1
.sheet_names
()
worksheet
= workbook1
.sheet_by_name
(sheets1
[0])
报错如下:
AttributeError
: 'Workbook' object has no attribute
'sheet_names'
为什么同一个程序中有的workbook带有sheet_names属性而有的没有?
2.解决方法
经过反复尝试,发现只有读取的workbook才有该属性,将代码修改为以下: 自己的理解,每次对workbook操作之后,需要再执行一次open,才能使workbook具有该有的属性
workbook1
= xlwt
.Workbook
(path1
)
sheet_diff
= workbook1
.add_sheet
('sheet_diff')
workbook1
= xlrd
.open_workbook
(path1
)
sheets1
= workbook1
.sheet_names
()
worksheet
= workbook1
.sheet_by_name
(sheets1
[0])
程序暂时不再报相同的错误。
record for myself only.
不知道对不对,是个小白,请各位大佬指正。