2017-06-20 138 views
-1

昨天我正在運行這個文件,現在我得到一個AttributeError,當我今天嘗試運行它。下面是我試圖運行代碼: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腳本和我收到說

一個ImportError
from openpyxl.styles import PatternFill 
ImportError: cannot import name PatternFill 

這讓我覺得openpyxl模塊有問題。我使用pip安裝它,並使用Spyder IDE。謝謝您的幫助。

+0

如果什麼您在閱讀工作簿之前先執行'print(openpyxl .__ version __)'?它輸出的是什麼版本? – alecxe

+0

它說'1.8.5' –

+0

是的,它很老 - 因此沒有'max_row'屬性。 – alecxe

回答

0

它說 '1.8.5'

openpyxl版本嚴重過時 - 因此在WorkSheet類沒有max_row屬性。

你需要弄清楚什麼,當你從運行Spyder的IDE腳本的Python可執行文件使用,然後更新在這種環境openpyxl

pip install --upgrade openpyxl 

(目前最新openpyxl2.4.8