【问题】
在折腾:
【已解决】Python中使用xlutils.copy出错:AttributeError: ‘module’ object has no attribute ‘copy’
的过程中,参考:
writing to existing workbook using xlwt
去用:
from xlutils.copy import copy; newWb = copy(gConst['xls']['fileName']);
代码,结果出错:
newWb = copy(gConst[‘xls’][‘fileName’]); w File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\xlutils-1.5.2-py2.7.egg\xlutils\filter.py", line 827, in process reader(chain[0]) File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\xlutils-1.5.2-py2.7.egg\xlutils\filter.py", line 60, in __call__ filter.workbook(workbook,filename) File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\xlutils-1.5.2-py2.7.egg\xlutils\filter.py", line 267, in workbook self.wtbook.dates_1904 = rdbook.datemode AttributeError: ‘str’ object has no attribute ‘datemode’ |
【解决过程】
1.但是,参考的帖子里面,就是这么写的啊,不知道为何错误。
2.后来参考官网的资料:
才知道,copy的参数,是对应的workbook,而不是xls的filename。
3.所以去改为:
import xlwt; import xlrd; #import xlutils; from xlutils.copy import copy; oldWb = xlrd.open_workbook(gConst['xls']['fileName']); print oldWb; #<xlrd.book.Book object at 0x000000000315C940> newWb = copy(oldWb); print newWb; #<xlwt.Workbook.Workbook object at 0x000000000315F470>
才真正可以正常打开旧的xls,拷贝出一份新的xls。
【总结】
看来,别人的代码,也不是很靠谱。
还是要自己实践才能出真知。
转载请注明:在路上 » 【已解决】Python中使用xlutils的copy出错:AttributeError: ‘str’ object has no attribute ‘datemode’