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 计算任务