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/
我正在学习 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/