Openpyxl AttributeError

时间:2017-06-20 17:49:38

标签: python-2.7 openpyxl

我昨天运行此文件很好,现在我在今天尝试运行时收到了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。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

  

它说' 1.8.5'

您的openpyxl版本严重过时 - 因此max_row类缺少WorkSheet属性。

您需要弄清楚从Spyder IDE运行脚本时使用的Python可执行文件,然后在该环境中更新openpyxl

pip install --upgrade openpyxl

(目前最新openpyxl2.4.8