2017-07-07 112 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)'这一行吗? –