【问题标题】:Using result of formula in another calculation在另一个计算中使用公式的结果
【发布时间】:2017-05-17 21:52:19
【问题描述】:

我想使用第二个“for i in range”语句中计算的值来使用第四个“for i in range”语句计算一个新值;但是,我收到错误:“无法将字符串转换为浮点数:'E2*37.5'”

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

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)

【问题讨论】:

    标签: python string python-3.x int openpyxl


    【解决方案1】:

    不幸的是,这不太可能because

    openpyxl 从不计算公式

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

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

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

    【讨论】:

    • 感谢@e4c5,完美运行!!我慢慢掌握了
    • 很高兴能帮上忙。祝您的项目一切顺利。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2021-01-09
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    相关资源
    最近更新 更多