J'essaye de suivre cette question pour ajouter une formule dans mon excel en utilisant python et package openpyxl.
Ce lien est ce dont j'ai besoin pour ma tâche.
Mais dans ce code:
for i, cellObj in enumerate(Sheet.columns[2], 1):
cellObj.value = '=IF($A${0}=$B${0}, "Match", "Mismatch")'.format(i)
Je prends une erreur à Sheet.columns[2]
une idée pourquoi? je suis le code complet.
J'ai la version python 2.7.13 si cela aide pour cette erreur.
****METTRE À JOUR****
CODE COMPLET:
import openpyxl
wb = openpyxl.load_workbook('test1.xlsx')
print wb.get_sheet_names()
Sheet = wb.worksheets[0]
for i, cellObj in enumerate(Sheet.columns[2], 1):
cellObj.value = '=IF($A${0}=$B${0}, "Match", "Mismatch")'.format(i)
Message d'erreur :
for i, cellObj in enumerate(Sheet.columns[2], 1):
TypeError: l'objet 'générateur' n'a pas d'attribut ' getitem '
2 réponses
ws.columns
et ws.rows
sont des propriétés qui renvoient des générateurs. Mais openpyxl prend également en charge le découpage et l'indexation des lignes et des colonnes
Ainsi, ws['C']
donnera une liste des cellules dans la troisième colonne.
Pour les autres aventuriers de Stack qui souhaitent copier / coller une formule:
# Writing from pandas back to an existing EXCEL workbook
wb = load_workbook(filename=myfilename, read_only=False, keep_vba=True)
ws = wb['Mysheetname']
# Paste a formula Vlookup! Look at column A, put result in column AC.
for i, cellObj in enumerate(ws['AC'], 1):
cellObj.value = "=VLOOKUP($A${0}, 'LibrarySheet'!C:D,2,FALSE)".format(i)
Un problème, j'ai un en-tête et la formule l'écrase. Quelqu'un sait comment partir de la ligne 2?
Questions connexes
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.