2017-07-07 109 views
-1

我想讀取python中excel文件的單元格,更改它的值並保存。如果我沒有行from xlutils.copy import copy的代碼,它承認workbook.sheeets(),但除此之外,它說用python讀寫excel文件

AttributeError: 'Workbook' object has no attribute 'sheets' 


from xlutils.copy import copy 

import xlrd 
st = xlwt.easyxf('pattern: pattern solid;') 
rb = xlrd.open_workbook('00-17.xlsx') 

workbook = copy(rb) 
for sheet in workbook.sheets(): 
    for row in range(sheet.nrows): 

     current_value = sheet.cell(row,3).value 
     if(current_value == '1') : 
      st.pattern.pattern_fore_colour = 5 

      for column in [0,2,3]: 
       value = sheet.cell(row, column).value 

       print value 
       sheet.write(row, column, value,st) 
workbook.save('1.xlsx') 
+0

什麼是錯誤? –

+0

AttributeError:'工作簿'對象沒有屬性'get_sheet_by_name' – Pegah

+0

您可能想繼續閱讀「xlrd」的文檔。按名稱訪問工作表的方法是'.sheet_by_name'而不是'.get_sheet_by_name'。另外,要獲得行數,只需使用'sheet.nrows'。 – Abdou

回答

0

我相信你可能需要使用load_workbook()方法第一。檢查鏈接Print Excel workbook using python它可能會幫助。

您可以試試workbook = xlrd.open_workbook('00-17.xlsx')並刪除行workbook = copy(rb)

+0

我的python有load_workbook()的問題,並且因爲它沒有找到基礎包(儘管我安裝了它)。你能看看我的更新嗎? – Pegah

+0

你可以嘗試用'workbook = xlrd.open_workbook('00 -17.xlsx')'來做,並刪除'workbook = copy(rb)'這一行嗎? –