1
J'essaie d'écrire une formule dans une cellule et d'écrire pour toute la colonne. Cependant, pour chaque cellule de la colonne, on lit = (E2-F2)/C2. Pour chaque cellule sur la même colonne, comment l'obtenir ainsi (E3-F3)/C3 et ainsi de suite?Openpyxl Remplissage de la colonne entière
import openpyxl
wb = openpyxl.load_workbook('yes.xlsx')
Sheet = wb.get_sheet_by_name('Sheet1')
n = '=(E2-F2)/C2'
for cellObj in list(Sheet.columns)[6]:
cellObj.value = n
wb.save("row_creation_loop.xlsx")
Pour moi, votre objectif n'est pas clairement indiqué. Vous dites qu'il lit une formule (obtenue à partir de la formule spécifiée dans votre code), mais vous voulez qu'il lise une formule différente. Juste changer la formule codée en dur dans votre code ne va pas le réparer? Voulez-vous plutôt incrémenter des valeurs dans la formule pour chaque ligne dans la colonne? Si donc l'incrémentation d'une variable de ligne dans une boucle et sa conversion en une chaîne fonctionneraient, plus de précisions sur votre objectif aideraient à offrir une solution. – davedwards
Désolé si je ne suis pas clair. J'essaye d'avoir des valeurs incrémentées dans la formule à chaque rangée de la même colonne. –
merci de clarifier. Vous pourriez probablement utiliser [énumérer] (http://docs.python.org/2/library/functions.html#enumerate) dans la boucle for pour obtenir le numéro de ligne, puis affecter cette valeur de ligne à 'n'. Peut-être quelque chose comme: 'pour row, cellObj dans enumerate (list (Sheet.columns) [6]):' ... 'n = '= (E% dF% d)/C% d'% (ligne, ligne, row) ' – davedwards