2017-07-07 4 views
-1

J'essaie de lire la cellule d'un fichier excel en python, changez sa valeur et enregistrez-la. Si je n'ai pas la ligne from xlutils.copy import copy dans le code, il reconnaît workbook.sheeets(), mais sinon, il ditlire et écrire dans un fichier excel avec python

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

Quelle est l'erreur? –

+0

AttributeError: l'objet 'classeur' n'a pas d'attribut 'get_sheet_by_name' – Pegah

+0

Vous pouvez commencer et lire la documentation de 'xlrd' en premier. La méthode pour accéder à une feuille par son nom est '.sheet_by_name' et non' .get_sheet_by_name'. Pour obtenir le nombre de lignes, utilisez également 'sheet.nrows'. – Abdou

Répondre

0

Je crois que vous pourriez avoir à utiliser la méthode load_workbook() en premier. Consultez le lien Print Excel workbook using python il aidera probablement.

Pouvez-vous essayer de le faire avec workbook = xlrd.open_workbook('00-17.xlsx') et supprimer la ligne workbook = copy(rb)?

+0

Mon python a un problème avec load_workbook(), et parce qu'il ne trouve pas le paquet de base (bien que je l'ai installé). Pourriez-vous jeter un coup d'œil à ma mise à jour? – Pegah

+0

Pouvez-vous essayer de le faire avec 'workbook = xlrd.open_workbook ('00 -17.xlsx ')' et supprimer la ligne 'workbook = copy (rb)'? –