Excel openpyxl 中的公式使用 python 变量

Excel formula in openpyxl using python variable

我正在学习 openpyxl 以使我的工作更轻松,并试图找到一种在公式中使用变量的方法。例如,单元格A1到A10有10个值,我想用下面的变量把这10个值的平均值放到A11中。

from openpyxl import load_workbook
wb=load_workbook(filename='c:/average.xlsx')
ws=wb.active

b=10
ws.cell(11,1).value = "=AVERAGE(A1:A"b")"

wb.save('c:/average2.xlsx')

但是A11的单元格值为'=AVERAGE(A1:A)'。我尝试了“=AVERAGE(A1:A" b ")”、“=AVERAGE(A1:A{b})”、“=AVERAGE(A1:A{ b })”,但没有任何效果。此代码的目的是在 A11、B11、C11 等许多单元格中进行相同的计算

我相信答案应该很简单,并且找到了一些与类似问题相关的以前的问题,但还没有找到答案。仅供参考,我正在使用 python 2.7.18 和 openpyxl 2.6.4。提前致谢。

Python 2.7 更新:

您需要使用其中一种“旧”方法,因为 f-strings 不支持 Python 2.X...

b=10
ws.cell(11,1).value = "=AVERAGE(A1:A%d)" % b

您只需要正确格式化字符串并注入 b 的值。您可以像这样使用“f-string”符号:

b=10
ws.cell(11,1).value = f"=AVERAGE(A1:A{b})"

这应该可以解决问题。

为了更深入地了解(和替代选项),您可以查看此参考资料:https://realpython.com/python-string-formatting/