我昨天运行此文件很好,现在我在今天尝试运行时收到了AttributeError
。以下是我试图运行的代码:
from openpyxl import load_workbook
def read_in():
wb = load_workbook('GenerateModel.xlsx')
ws = wb.get_sheet_by_name('Sheet1')
da_name = []
for i in range(1, ws.max_row+1):
if ws.cell(row=i,column=3).value != None and (
ws.cell(row=i,column=3).value != u'DA Name'):
da_name.append(ws.cell(row=i,column=3).value.encode('ascii'))
start_date = ws.cell(row=4, column=4).value
end_date = ws.cell(row=4, column=5).value
if start_date == None or end_date == None:
raise ValueError('Date cannot be left blank')
if start_date > end_date:
raise ValueError('Start Date must be less than End Date')
这是我得到的错误:
line 28, in read_in
for i in range(1, ws.max_row+1):
AttributeError: 'Worksheet' object has no attribute 'max_row'
我尝试运行另一个python脚本,并且我得到一个说错误的
from openpyxl.styles import PatternFill
ImportError: cannot import name PatternFill
这让我觉得openpyxl
模块有问题。我使用pip安装它,我使用Spyder IDE。谢谢你的帮助。
答案 0 :(得分:0)
它说' 1.8.5'
您的openpyxl
版本严重过时 - 因此max_row
类缺少WorkSheet
属性。
您需要弄清楚从Spyder IDE运行脚本时使用的Python可执行文件,然后在该环境中更新openpyxl
:
pip install --upgrade openpyxl
(目前最新openpyxl
为2.4.8
)