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)