在另一个计算中使用公式的结果

Using result of formula in another calculation

我想使用在第二个 "for i in range" 语句中计算的值来使用第四个 "for i in range" 语句计算一个新值;但是,我收到错误消息:"could not convert string to float: 'E2*37.5'"

如何调用 sheet['F{}',format(i)] ='E{}*37.5'.format(i) 中计算的数值而不是 formula/string?

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)

不幸的是,这不太可能because

openpyxl never evaluates formula

还有其他图书馆可以这样做。但是,您可以通过认识到您可以使用另一个单元格引用而不是此处的计算值来解决您的问题。

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

请注意,您无法设置 Ix 单元格的值,因为您实际上没有 Ex 或 Hx 单元格的值。 (好吧,你可能有,但如果你这样做,你的问题并不清楚)