¿Cómo se guarda los datos del diccionario en la fila correspondiente de Excel pero en una columna diferente utilizando openpyxl?
Estoy usando openpyxl para leer una columna (A) de una hoja de cálculo de Excel. Luego itero a través de un diccionario para encontrar la información correspondiente y luego quiero escribir estos datos en la columna (C) de la misma hoja de cálculo de Excel.
He intentado averiguar cómo agregar datos de vuelta a la fila correspondiente, pero sin suerte.
CÓDIGO
“`from openpyxl import load_workbook
my_dict = {
'Agriculture': 'ETSSAgriculture',
'Dance': 'ETFA_Dance',
'Music': 'ETFA_Music'
}
wb = load_workbook("/Users/administrator/Downloads/Book2.xlsx") # Libro de trabajo
ws = wb['Sheet1'] # Hoja de trabajo
columna = ws['A'] # Columna
escribir_columna = ws['C']
lista_de_columna = [columna[x].value for x in range(len(columna))]
for k, v in my_dict.items():
for l in lista_de_columna:
if k in l:
print(f'El dict para {l} es {v}')
# agregar v a la fila del índice de celda de lista_de_columna```
Por lo tanto, si mi hoja de cálculo de Excel se ve así:
Quiero que la columna C se vea así después de haber emparejado el diccionario de datos.
davy.ai
Para agregar los datos de vuelta a la fila correspondiente, puedes realizar un seguimiento del índice de la fila mientras iteras a través de los valores de la columna. Aquí hay un fragmento de código actualizado para lograr esto:
En este código actualizado, usamos un bucle
for
para iterar a través del índice de los valores de la columna (1 a longitud de la columna). Luego recuperamos el valor de la celda actual y recorremos el diccionario para encontrar el valor coincidente. Si se encuentra, asignamos ese valor awrite_value
y rompemos el bucle. Finalmente, usamoswrite_column.cell()
para escribir elwrite_value
en la fila correspondiente en la columna C. Luego guardamos el libro de trabajo usandowb.save()
.