workbook tutorial open manejo libreria español archivos python string python-3.x int openpyxl

tutorial - python excel



Usando el resultado de la fórmula en otro cálculo (1)

Me gustaría usar el valor calculado en la segunda instrucción "para i en el rango" para calcular un nuevo valor usando la cuarta declaración "para i en el rango"; sin embargo, recibo el error: "no se pudo convertir la cadena en float: ''E2 * 37.5''"

¿Cómo invoco el valor numérico calculado en, sheet[''F{}'',format(i)] =''E{}*37.5''.format(i) lugar de la fórmula / cadena?

import openpyxl wb = openpyxl.load_workbook(''camdatatest.xlsx'', read_only= False, data_only = True) # Assuming you are working with Sheet1 sheet = wb[''Sheet1''] for i in range(2,80): sheet[''D{}''.format(i)] = ''=C{}/3''.format(i) for i in range(2,80): sheet[''F{}''.format(i)] = ''=E{}*37.5''.format(i) for i in range(2,80): sheet[''H{}''.format(i)] = ''=D{}*G2*50''.format(i) for i in range(2,80): sheet[''I{}''.format(i)].value = float(sheet[''F{}''.format(i)].value)/float(sheet[''H{}''.format(i)].value) wb.save(''camdatatestoutput.xlsx'' , data_only= True)


Desafortunadamente eso no es posible porque

openpyxl nunca evalúa la fórmula

Hay otras bibliotecas que pueden hacerlo. Sin embargo, su problema puede superarse reconociendo que puede usar otra referencia de celda en lugar del valor calculado aquí.

for i in range(2,80): sheet[''I{}''.format(i)] = ''=E{}*37.5/H{}''.format(i,i)

Tenga en cuenta que no puede establecer el valor para la celda Ix porque realmente no tiene un valor para las celdas Ex o Hx. (Bueno, es posible que tenga, pero no está claro en su pregunta si lo hace)