J'ai écrit du code qui ouvre un fichier Excel et parcourt chaque ligne et transmet la valeur à une autre fonction.
import openpyxl
wb = load_workbook(filename='C:\Users\xxxxx')
for ws in wb.worksheets:
for row in ws.rows:
print row
x1=ucr(row[0].value)
row[1].value=x1 # i am having error at this point
J'obtiens l'erreur suivante lorsque j'ai essayé d'exécuter le fichier.
TypeError: IndexError: Tuple index out of range
Puis-je écrire la valeur retournée x1
à la row[1]
colonne. Est-il possible d'écrire dans Excel (c'est-à-dire en utilisant row[1]
) au lieu d'accéder à des cellules uniques comme ws.['c1']=x1
Essaye ça:
import openpyxl
wb = load_workbook(filename='xxxx.xlsx')
ws = wb.worksheets[0]
ws['A1'] = 1
ws.cell(row=2, column=2).value = 2
ws.cell(coordinate="C3").value = 3 # 'coordinate=' is optional here
Cela définira les cellules A1, B2 et C3 sur 1, 2 et 3 respectivement (trois façons différentes de définir les valeurs des cellules dans une feuille de calcul).
La deuxième méthode (en spécifiant la ligne et la colonne) est la plus utile pour votre situation:
import openpyxl
wb = load_workbook(filename='xxxxx.xlsx')
for ws in wb.worksheets:
for index, row in enumerate(ws.rows, start=1):
print row
x1 = ucr(row[0].value)
ws.cell(row=index, column=2).value = x1