使用 openpyxl 为 Excel 单元格设置公式

Excel 单元格公式,以一个等号开始。通过公式,我们可以获取其它单元格的数据,并得出计算结果。

为单元格设置公式的方式与设置普通值是一样的。

import openpyxl

wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = 1
sheet['A2'] = 2
sheet['A3'] = '=SUM(A1:A2)'

print(sheet['A3'].value)

wb.save('formula.xlsx')

运行结果:

=SUM(A1:A2)

可以看到,我们可以像读取普通值一样,读取单元格中的公式。

有时候,我们希望直接读取计算结果。那么可以在 load_workbook() 方法中,将其 data_only 参数设置为 True,即只读模式。

wb_data_only=openpyxl.load_workbook('formula.xlsx',data_only=True)
sheet = wb_data_only.active
print(sheet['A3'].value)

运行结果:

3

注意: 前一个示例保存的 formula.xlsx,必须用 Excel 打开并保存后,才能在只读模式下,正确读取公式的计算结果。否则,读取出来的值会是 None。切记!


Excel 的公式虽然也可以编程,但对于复杂的任务,编写出来的代码杂糅在一起,很难阅读与维护。相对来说,使用 Python 代码来处理复杂的 Excel 计算任务

发表评论