我正在尝试运行this脚本并收到错误:
Traceback (most recent call last):
File "nimeKoostaja.py", line 19, in <module>
wb = copy(book)
File "/usr/local/lib/python2.7/dist-packages/xlutils/copy.py", line 13, in copy
w
File "/usr/local/lib/python2.7/dist-packages/xlutils/filter.py", line 827, in process
reader(chain[0])
File "/usr/local/lib/python2.7/dist-packages/xlutils/filter.py", line 66, in __call__
for col_x in xrange(sheet.row_len(row_x)):
AttributeError: 'Sheet' object has no attribute 'row_len'
我正在使用xubuntu 12.10。有趣的是,Windows 7中的相同代码并没有发生这种情况。我不知道出了什么问题。
答案 0 :(得分:2)
在我看来,您正在运行旧版本的xlrd
,因为它提供了工作表。
您在xubunut上使用的是什么版本的xlrd? (或者是 xubuntu )
使用此测试程序:
import os
import xlrd
print 'xlrd: ', xlrd.__VERSION__
import xlwt
print 'xlwt: ', xlwt.__VERSION__
import xlutils.copy
print 'xlutils:', open(os.path.join(os.path.dirname(
xlutils.copy.__file__), 'version.txt')).read()
from xlrd import open_workbook, cellname, XL_CELL_TEXT
from xlwt import Workbook
from xlutils.copy import copy
# open fail
book = open_workbook('name.xls')
# make copy
wb = copy(book)
print 'finished'
不同版本的xlrd,我得到以下输出:
2013-03-14 18:33:30.201494 ['python2.7', 'test.py']
xlrd: 0.9.0
xlwt: 0.7.4
xlutils: 1.5.2
finished
和
2013-03-14 18:35:40.241518 ['python2.7', 'test.py']
xlrd: 0.7.3
xlwt: 0.7.4
xlutils: 1.5.2
finished
和
2013-03-14 18:42:06.703188 ['python2.7', 'test.py']
xlrd: 0.6.1
xlwt: 0.7.4
xlutils: 1.5.2
Traceback (most recent call last):
File "test.py", line 19, in <module>
wb = copy(book)
File "/usr/lib/python2.7/dist-packages/xlutils/copy.py", line 13, in copy
w
File "/usr/lib/python2.7/dist-packages/xlutils/filter.py", line 827, in process
reader(chain[0])
File "/usr/lib/python2.7/dist-packages/xlutils/filter.py", line 66, in __call__
for col_x in xrange(sheet.row_len(row_x)):
AttributeError: 'Sheet' object has no attribute 'row_len'