web-dev-qa-db-fra.com

comment écrire dans une nouvelle cellule dans python en utilisant openpyxl

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

9
Priyaranjan

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
28
Jake Griffin